2017-09-21 4 views
0

複数のMongoDBのドキュメントを更新する私ははアトミック

[ 
    { 
     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

あなたはこの

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 
    } 
} 
ような何かを行うことができます
関連する問題