2016-05-27 14 views
0

これは私のドキュメントです。私の配列にない埋め込みドキュメントの配列から要素を削除する方法

{ 
    "group_name" : "Test Group 6 (Edit)", 
    "created_on" : "1464367826787", 
    "group_id" : "group_14", 
    "members" : [ 
     { 
      "user_id" : "user_7", 
      "added_on" : "1464367826787" 
     } 
    ], 
    "is_deleted" : 0 
} 

私はuser_idsのリストを持っています。私が持っているuser_idsのリストにないuser_idsを削除する必要があります。入力した場合 "user_50"を削除するにはlist = ["user_7"]

答えて

0

文書を選択するには$nin演算子を使用し、複数の文書を更新する場合はupdateManyメソッドを使用し、1つの文書を更新する場合はupdateOneメソッドを使用する必要があります。

db.users.updateMany(
    {}, 
    { "$pull": { "members": { "user_id": { "$nin": [ "user_7" ] } } }} 
) 
+0

おかげで、私は "members.user_id" を試してみました。私のコードのtypo –

0
db.users.update(
    {}, 
    {$pull: 
    {members:{'user_id':{$ne:"user_7"}}}}, {multi:true}) 
+1

入力はリストかもしれないので、 "$ nin"ではなく "$ nin"を使うべきです –

関連する問題