gpt4 book ai didi

mongodb - MongoDB : Get all documents inserted after the last known one

转载 作者:IT老高 更新时间:2023-10-28 13:27:16 24 4
gpt4 key购买 nike

> 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" }

是 Mongo DB 服务器上的事件列表。客户端跟踪他知道的最后一个事件,例如 50911c4709913b2c643f1216,第二个。

如何获取在这个已知事件之后插入的所有事件?在这种情况下 50911c4b09913b2c643f121750911c4f09913b2c643f121850911c6309913b2c643f1219

最佳答案

由于 ObjectId 默认包含 inctimestamp ( http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-BSONObjectIDSpecification ),因此您实际上可以使用 ObjectId 了解插入时间(大致)通过:

db.col.find({_id: {$gt: {ObjectId("50911c4709913b2c643f1216")}}});

但是 ObjectId 并不总是非常可靠,尤其是如果在您的应用程序中,您在插入前一段时间创建了 ObjectId 并且实际上您知道稍后创建了一条记录实际上显示(因为它的 _id)如前所述。

对于在某些情况下您不能信任插入计时器的 ObjectId 的插入,您可以添加 BSON 日期类型 (ISODate) 的 ts 字段>) 并使用两个查询对其进行范围,一个用于获取原始文档时间,另一个用于获取之后的所有文档。

我个人更喜欢使用 BSON 日期类型的第二种方法,因为它更可靠、更灵活。

关于mongodb - MongoDB : Get all documents inserted after the last known one,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13158319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com