我将node.jsmongoose插件一起使用。我需要做的就是尝试通过查询选择单个文档:

{
  _id: '52261c53daa9d6b74e00000c',
  someAdditionalFlag: 156
}


并且仅当成功时,才将该标志更改为另一个值。而且,查找和修改操作必须是原子的。拜托,如何用猫鼬来实现呢?

最佳答案

您不需要使用findAndModify,因为您不需要原始文档。因此,您可以像这样使用update

MyModel.update({
  _id: '52261c53daa9d6b74e00000c',
  someAdditionalFlag: 156
}, {
  $set: {someAdditionalFlag: newValue }
},
function(err, numAffected) { ... });


在回调中,如果进行更改,numAffected将为1,否则为0。

关于node.js - Mongoose 和findAndModify,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18598624/

10-09 22:39