> db.events.find()
{ "_id" : ObjectId("50911c3e09913b2c643f1215"), "context" : "jvc8irfjc9cdnf93", "key" : "value" }
{ "_id" : ObjectId("50911c4709913b2c643f1216"), "context" : "jvc8irfjc9cdnf93", "key" : "new value" }
{ "_id" : ObjectId("50911c4b09913b2c643f1217"), "context" : "jvc8irfjc9cdnf93", "key" : "newer value" }
{ "_id" : ObjectId("50911c4f09913b2c643f1218"), "context" : "jvc8irfjc9cdnf93", "key" : "newest value" }
{ "_id" : ObjectId("50911c6309913b2c643f1219"), "context" : "0djd8vcndkfnjhv3", "key" : "value" }
Run Code Online (Sandbox Code Playgroud)
是Mongo数据库服务器上的事件列表.客户端跟踪他知道的最后一个事件,例如50911c4709913b2c643f1216,第二个事件.
如何获取在此已知事件之后插入的所有事件?在这种情况下50911c4b09913b2c643f1217,50911c4f09913b2c643f1218和50911c6309913b2c643f1219.
由于ObjectId默认情况下包含a inc和a timestamp(http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-BSONObjectIDSpecification),您实际上可以通过以下ObjectId方式使用它来了解插入时间(大致):
db.col.find({_id: {$gt: {ObjectId("50911c4709913b2c643f1216")}}});
Run Code Online (Sandbox Code Playgroud)
但是,ObjectId并不总是非常可靠,特别是如果在您的应用程序中,您ObjectId在插入之前创建了一段时间,并且实际上您知道之后创建的一条记录实际上显示(因为它_id)如前所述.
对于您不能信任ObjectId插入计时器的某些情况下的插入,您可以使用两个查询添加tsBSON日期类型(ISODate)的范围和范围,一个用于获取原始文档时间,然后另一个用于获取所有文档.
我个人更喜欢使用BSON日期类型的第二种方法,因为它更可靠和灵活.
| 归档时间: |
|
| 查看次数: |
6304 次 |
| 最近记录: |