2016-06-19 6 views
2

私はこのような「アカウント」コレクションとDB持っている:私はこの条件に基づいて一つの文書を選択する必要が時間条件に基づいてMongoDBコレクション内の文書を検索し、タイムスタンプを書き戻しますか?

{u'timestamp': u'2016-06-09 23:29:50.083093', u'account': u'admin:password', u'_id': ObjectId('5766932f6f340ca9a70cdb16'), u'is_valid': u'True'} 

:IS_VALIDがtrueの場合、タイムスタンプが24時間を経過した場合を。したがって、真のと現在の時刻2016-06-10 23:29:50.083093に合格する必要があります。次に、この文書のタイムスタンプを現在の時刻に更新する必要があります。

どうすればこの問題を解決できますか?私は、最初の条件を適用する方法を知っている:

import pymongo 
from datetime import datetime 

try: 
    conn=pymongo.MongoClient() 
    db = conn.instagram 
    collection = db.accounts 
    res = collection.find_one({"is_valid": "True"}) 
    print res 
except pymongo.errors.ConnectionFailure, e: 
    print "Could not connect to MongoDB: %s" % e 

答えて

3

は、引数として渡されたdatetimeインスタンスで$lt operatorを使用します。

from datetime import datetime, timedelta 

dt = datetime.now() - timedelta(hours=24) 
res = collection.find_one({"is_valid": "True", "timestamp": {"$lt": dt}}) 
+0

フム、Noneを返します。 –

+1

"str" '{" $ lt ":str(dt)}})'を追加しました。 –

関連する問題