ネストされた配列を持つドキュメントがあります。キー値で配列内のアイテムを削除したい。私は更新を試みました:
array('$unset' => array('item.key' => 1))
array('$pull' => array('item.key' => 1))
を実行すると$unset
、キーは保持されますが、値が無効になります。完全に削除したいと思います。プルは何もしませんでした。
助言がありますか?
ありがとうございました!
使用$pull
するには、削除する配列要素全体を指定する必要があります。幸いなことに、削除する$pull
要素の一致基準を指定できるという点で特別$pull
です
次に例を示します。
db.array.update({},{$pull:{a:{"key2":{$exists:true}}}},{multi:true})
これにより、値に関係なく、「key2」がキー名として存在する配列要素が削除されます。これがあなたが望むもののように聞こえます。
ここに参照があります。