Mongoose和findAndModify

时间:2013-09-03 17:58:59

标签: node.js mongodb mongoose

我将node.jsmongoose插件一起使用。我只需要尝试使用如下查询选择单个文档:

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

当且仅当成功时将该标志更改为另一个值。此外,查找和修改操作需要原子。请问,如何使用Mongoose实现这一目标?

1 个答案:

答案 0 :(得分:3)

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

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

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