我们如何在Mongodb中实现“选择更新”?

时间:2015-12-22 17:06:55

标签: mongodb

以下是我的示例文档。我想加载这个文件&读取total_comments值&对其执行某些逻辑并使用新的total_comments值再次更新文档。在完成上述步骤之前,我应该如何确保其他请求不会更新total_comments值?

{ "_id" : ObjectId("56782a933d5c6ca02100002b"), "total_comments" : 12, "time_updated" : 1450715963 }

在mysql中,我们可以通过“select for update”来做到这一点。我们怎样才能在Mongodb中实现这一目标?。

这是我的MongoDB版本:

> db.version()
3.0.7

这是我的存储引擎详细信息:

> db.serverStatus().storageEngine
{ "name" : "mmapv1" }

1 个答案:

答案 0 :(得分:1)

使用findAndModify()更新文档。

例如,您可以使用

将total_comments增加1
db.collection.findAndModify({_id: ObjectId("56782a933d5c6ca02100002b")}, {}, {$inc: {"total_comments": 1}});