2016-12-06 7 views
1

マイドキュメントではこのようなものです:customerIdsサブアレイからすべてのサブ要素を取り出す方法は?

// collection: photos 
{ 
    "_id" : ObjectId("5835840fb6ca90e020020b22"), 
    "customerIds" : [ 
     { 
      "code" : "SHDR327D7DVKHBT3", 
      "cType" : "photoPass", 
      "userIds" : ['aaa','bbb'] 
     }, 
     { 
      "code" : "SHDR327D7DVKHBT3", 
      "cType" : "photoPass", 
      "userIds" : ['ddd','aaa','ccc'] 
     } 
    ] 
} 

二つの文書が同じです。今私はuserIdsのすべての 'aaa'を削除したい、どのように私は1つのコマンドでそれを達成することができますか?

私はこのコマンドを使用して削除しますが、一度に削除できるのはこのコマンドだけです。

db.photos.update(
     {"customerIds.code":'SHDR327D7DVKHBT3',"customerIds.userIds":'aaa'}, 
     {$pull: {"customerIds.$.userIds":{$in:['aaa']}}}, 
     { multi: true,upsert: false} 
) 

答えて

0

これはあなたがやりたいことですか?

db.testCollection.aggregate([ 
    {$unwind: "$customerIds"}, 
    {$unwind:"$customerIds.userIds"}, 
    {$match:{"customerIds.userIds":"aaa"}}, 
    {$project:{"customerIds.userIds":1,_id:0}} 
]) 

これは「AAA」に戻ります。

{ 
     "_id" : ObjectId("584708e6888ff31225c2e375"), 
     "customerIds" : { 
       "userIds" : "aaa" 
     } 
} 
{ 
     "_id" : ObjectId("584708e6888ff31225c2e375"), 
     "customerIds" : { 
       "userIds" : "aaa" 
     } 
} 
+0

は私の質問に答えてくれてありがとう、実際に私はそれらを削除する方法であるかを知りたいです... –

関連する問題