根据时间条件在MongoDB集合中查找文档并写回时间戳?

时间:2016-06-19 14:02:31

标签: python mongodb time pymongo

我有一个带有“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

1 个答案:

答案 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}})