Как получить документ для определенной временной метки в Mongodb?

#mongodb #pymongo

#mongodb #pymongo

Вопрос:

У меня есть следующий набор информации о документе в моей коллекции и как получить один документ с определенной временной меткой?

Поскольку эта временная метка находится в ISODate(), как передать ее из моего клиента pyMongodb?

 [
{
    "_id" : ObjectId("5f64658a64b79fed80b8e4df"),
    "time" : ISODate("2020-09-18T13:15:14.290Z"),
    "details" : "with all details",
    "type" : "general",
    "payLoad" : {
        "myname" : "nameofme",
    }
},
{
    "_id" : ObjectId("5f64658a64b79fed80b8e4df"),
    "time" : ISODate("2020-09-18T13:18:20.290Z"),
    "details" : "with all details",
    "type" : "general",
    "payLoad" : {
        "myname" : "nameofme",
    }
},
{
    "_id" : ObjectId("5f64658a64b79fed80b8e4df"),
    "time" : ISODate("2020-09-18T13:50:20.290Z"),
    "details" : "with all details",
    "type" : "general",
    "payLoad" : {
        "myname" : "nameofme",
    }
}
]
  

Ответ №1:

Создайте его с помощью datetime объекта:

 from datetime import datetime
from pymongo import MongoClient

db = MongoClient()['mydatabase']

dt = datetime(2020, 9, 18, 13, 15, 14, 290000)

print(list(db.mycollection.find({"time" : dt})))
  

дает:

 [{'_id': ObjectId('5f64658a64b79fed80b8e4dd'), 'time': datetime.datetime(2020, 9, 18, 13, 15, 14, 290000), 'details': 'with all details', 'type': 'general', 'payLoad': {'myname': 'nameofme'}}]