以下是我的示例文档。我想加载这个文件&读取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" }
答案 0 :(得分:1)
使用findAndModify()更新文档。
例如,您可以使用
将total_comments增加1db.collection.findAndModify({_id: ObjectId("56782a933d5c6ca02100002b")}, {}, {$inc: {"total_comments": 1}});