2016-06-19 1 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'} 

나는이 조건에 따라 하나의 문서를 선택해야합니다 : 타임 스탬프 24 시간을 경과 한 경우 is_valid가 사실이고합니다. 따라서 진실한이고 현재 시간 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

흠 없음을 반환하지 않습니다. –

+1

"str"'{ "$ lt": str (dt)}})'가 추가되었습니다. 감사합니다! –

관련 문제