Mongodb 比较两个mongo ObjectId以检查这两个对象中的哪一个是后来创建的
我知道mongo ObjectId有时间戳和随机增量。因此,比较两个objectid应该是可能的,以找出这两个object中的哪一个是较早创建的还是较晚创建的Mongodb 比较两个mongo ObjectId以检查这两个对象中的哪一个是后来创建的,mongodb,mongodb-query,mongoid,objectid,Mongodb,Mongodb Query,Mongoid,Objectid,我知道mongo ObjectId有时间戳和随机增量。因此,比较两个objectid应该是可能的,以找出这两个object中的哪一个是较早创建的还是较晚创建的 我怎么能不从头开始写所有的东西?< /P> < P>让我们考虑一个集合 T1 < /Cord>两个文档: { "_id" : ObjectId("5e1705d9bc058dac23306dd0") }, { "_id" : ObjectId("5e1705ddbc058dac23306dd2") } 使用find方法进行的比较查询和使
我怎么能不从头开始写所有的东西?< /P> < P>让我们考虑一个集合<代码> T1 < /Cord>两个文档:
{ "_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 } ] } } )
两个查询都返回文档:{“\u id”:ObjectId(“5e1705ddbc058dac23306dd2”)}
为了验证,可以使用getTimestamp()
方法从ObjectId
获取日期/时间。例如,ObjectId(“5e1705d9bc058dac23306dd0”).getTimestamp()
返回ISODate(“2020-01-09T10:52:09Z”)
聚合操作符可以将ObjectId
转换为日期类型。可以比较生成的日期值。