我将node.js
与mongoose
插件一起使用。我只需要尝试使用如下查询选择单个文档:
{
_id: '52261c53daa9d6b74e00000c',
someAdditionalFlag: 156
}
当且仅当成功时将该标志更改为另一个值。此外,查找和修改操作需要原子。请问,如何使用Mongoose实现这一目标?
答案 0 :(得分:3)
您不需要使用findAndModify
,因为您不需要原始文档。所以你可以像这样使用update
:
MyModel.update({
_id: '52261c53daa9d6b74e00000c',
someAdditionalFlag: 156
}, {
$set: {someAdditionalFlag: newValue }
},
function(err, numAffected) { ... });
在回调中,如果进行了更改,numAffected
将为1,否则为0.