2017-04-25 31 views
1

私はusersのコレクションを持っており、すべてuserには多数の連絡先があります。 userが自分のアカウントを削除すると、このユーザーのIDは、このユーザーが接続されているすべてのユーザーの連絡先アレイから削除されます。このModel.Updateクエリを試しましたが、動作しません。ここに私のコードは、これまでのところです:Node.js MongoDB - Mongooseで複数の文書を更新するには?

   User.update({'userId':{ $in: userIds }, 
         $pullAll: {'contacts': [myId] },'multi': true 
        },function(err, count) { 
         if(err){ 
          console.log(err); 
         }else{ 
          console.log(count); 
         } 
        }); 
+0

で複数のドキュメントを更新することができます、正しい? 'User'モデルのスキーマ定義を表示するために質問を更新することはできますか? – chridam

+0

@chridamはい、正しい。 – Nikolaj

答えて

3

更新文書とmultiは別々の引数として渡される必要があります。

User.update({ 
    userId : { $in : userIds }  // conditions 
}, { 
    $pullAll : { contacts : [myId] } // document 
}, { 
    multi : true      // options 
}, function(err, count) { 
    if (err) { 
    console.log(err); 
    } else { 
    console.log(count); 
    } 
}); 

ドキュメントhere

+0

ありがとうございます、それは動作します。 – Nikolaj

0

は、私は `userIds`を除去する必要があるユーザーのためのIDの配列で、その後、他のユーザーの` contacts`配列からそれらを削除することをそれを取る複数の条件

Model.update({ 
    _id : { $in : ids}  // conditions 
}, { 
    $set: {deletion_indicator: constants.N} // document 
}, { 
    multi : true      // options 
}, function(err, result) { 
    if (err) { 
     console.log(err); 
    } else { 
     console.log(result); 
    } 
}); 
関連する問題