假设我有一个收藏人员
[
{
id: 1,
name: 'bob'
},
{
id: 2,
name: 'john'
}
]
我想让这个功能更新两者,但如果一个失败,另一个也失败,例如
function update() {
db.persons.update({id: 1}, {$set: {name: 'alex'}});
db.persons.update({id: 2}, {$set: {name: 'michael'}});
}
当我调用update()时,有可能会成功,而另一个会失败。我想要的行为是成功或两者都失败(不更改数据库)
答案 0 :(得分:0)
你可以做这样的事情
function update() {
if ((db.persons.find({id:1 })).nMatched!=0 && (db.persons.find({id:2 })).nMatched!=0){
db.persons.update({id: 1}, {$set: {name: 'alex'}});
db.persons.update({id: 2}, {$set: {name: 'michael'}});
}else{
//do nothing
}
}