有没有一种简单或优雅的方法(或我可以编写的查询)来检索集合中的最后一次更新的时间戳(最后一次更新的文档)。我可以像这样编写一个查询来查找最后插入的文档
db.collection.find().limit(1).sort({$natural:-1})但我需要有关上次更新的文档的信息(可能是插入或更新)。
我知道一种方法是在oplog集合中查询集合中的最后一条记录。但考虑到oplog可能非常大(也不值得信任,因为它是一个有上限的集合),这似乎是一个昂贵的操作。有没有更好的方法来做这件事?
谢谢!
发布于 2017-12-06 17:38:18
您可以通过与问题中提到的相同的方式获取上次插入时间:
db.collection.find().sort({'_id': -1}).limit(1) 但是,没有任何好的方法来查看上次更新/删除的时间。但是,如果您使用的是副本集,则可以从oplog获得副本集。
或者,您可以在文档中添加新字段作为'lastModified'。你也可以签出collection-hooks。我希望这能有所帮助。
发布于 2018-12-30 15:46:09
方法1 db.collection.find().limit(1).sort({updatedAt:-1})
方法2 db.collection.find().limit(1).sort({_id:-1})
发布于 2017-12-06 16:19:59
您可以尝试使用,
db.collection.findOne().sort({$natural:-1}).limit(1);https://stackoverflow.com/questions/47669659
复制相似问题