我有一个文档,我需要查询mongodb数据库,以便返回当前文档后插入的所有文档。
是否可以以及如何进行查询?
答案 0 :(得分:2)
如果您不覆盖默认的_id字段,则可以使用该objectID(请参阅mongodb docs)按时间进行比较。例如,以下查询将查找插入curDoc后插入的所有文档(假设没有覆盖_id字段):
>db.test.find({ _id : {$gt : curDoc._id}})
请注意,这些时间戳不是超级粒度,如果您希望更精细地查看文档插入的时间,我建议您将自己的时间戳字段添加到要插入的文档中,并使用该字段进行此类查询
答案 1 :(得分:1)
如果您使用插入时间戳作为参数,您可以查询如下
> db.foo.find()
{ "_id" : ObjectId("514bf8bbbe11e483111af213"), "Name" : "abc", "Insert_time" : ISODate("2013-03-22T06:22:51.422Z") }
{ "_id" : ObjectId("514bf8c5be11e483111af214"), "Name" : "xyz", "Insert_time" : ISODate("2013-03-22T06:23:01.310Z") }
{ "_id" : ObjectId("514bf8cebe11e483111af215"), "Name" : "pqr", "Insert_time" : ISODate("2013-03-22T06:23:10.006Z") }
{ "_id" : ObjectId("514bf8eabe11e483111af216"), "Name" : "ijk", "Insert_time" : ISODate("2013-03-22T06:23:38.410Z") }
>
这里我的Insert_time对应于文档插入时间,以下查询将为您提供特定Insert_time之后的文档,
> db.foo.find({Insert_time:{$gt:ISODate("2013-03-22T06:22:51.422Z")}})
{ "_id" : ObjectId("514bf8c5be11e483111af214"), "Name" : "xyz", "Insert_time" : ISODate("2013-03-22T06:23:01.310Z") }
{ "_id" : ObjectId("514bf8cebe11e483111af215"), "Name" : "pqr", "Insert_time" : ISODate("2013-03-22T06:23:10.006Z") }
{ "_id" : ObjectId("514bf8eabe11e483111af216"), "Name" : "ijk", "Insert_time" : ISODate("2013-03-22T06:23:38.410Z") }
>