1

我用node.js插件mongoose。我所需要的只是尝试选择一个带有如下查询的文档:

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

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

4

1 回答 1

3

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

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

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

于 2013-09-03T18:24:49.580 回答