我有一个带有“accounts”集合的数据库,如下所示:
{u'timestamp': u'2016-06-09 23:29:50.083093', u'account': u'admin:password', u'_id': ObjectId('5766932f6f340ca9a70cdb16'), u'is_valid': u'True'}
我需要根据这个条件选择一个文档:if is_valid是否为true,如果时间戳已超过24小时。所以应该 True 和当前时间 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
答案 0 :(得分:4)
使用$lt
operator并将datetime
个实例作为参数传递:
from datetime import datetime, timedelta
dt = datetime.now() - timedelta(hours=24)
res = collection.find_one({"is_valid": "True", "timestamp": {"$lt": dt}})