如何有效地更新插入到MongoDB集合中的最新文档
本文关键字:集合 最新 文档 MongoDB 有效地 更新 插入 | 更新日期: 2023-09-27 18:33:44
如果我没记错的话,MongoDB文档的ObjectId包含其创建的时间戳。仅更新集合中最新文档的最佳方法是什么?
假设我有一堆游戏文档,每隔一段时间就会创建一个新文档,每个分数都应该保存到最近的游戏中,而不是以前的游戏中。我想这样做是为了不将游戏对象存储在内存中。
我已经尝试了几件事,但我无法在一次操作中完成它。但是,您不需要将整个游戏对象存储在内存中。您可以询问最新的_id
。像这样的东西(外壳伪语法)。
var last_id = db.games.find({}, {_id: 1}).sort({_id: -1}).limit(1);
db.games.update({_id: last_id}, {$inc: {score: 1}});
更新:
好吧,我现在可能应该去睡觉了。当然,可以使用findAndModify来完成。这是JS代码。
db.runCommand({findAndModify: 'games',
sort: {_id: -1},
update: {$inc: {score: 1}}})