Рассмотрим коллекцию t1
с двумя документами:
{ "_id" : ObjectId("5e1705d9bc058dac23306dd0") },
{ "_id" : ObjectId("5e1705ddbc058dac23306dd2") }
Запросы сравнения с использованием метода find
и запрос агрегации с использованием ObjectId
для сравнения:
var INPUT_OBJ = ObjectId("5e1705dcbc058dac23306dd1")
db.t1.aggregate( [
{ $match: { $expr: { $gt: [ { $toDate: "$_id" }, { $toDate: INPUT_OBJ } ] } } }
] )
db.t1.find( { $expr: { $gt: [ { $toDate: "$_id" }, { $toDate: INPUT_OBJ } ] } } )
Оба запроса возвращают документ: { "_id" : ObjectId("5e1705ddbc058dac23306dd2") }
Для проверки можно использовать метод getTimestamp()
, чтобы получить дату / время из ObjectId
. Например, ObjectId("5e1705d9bc058dac23306dd0").getTimestamp()
возвращает ISODate("2020-01-09T10:52:09Z")
.