1

ネストされた配列を持つドキュメントがあります。キー値で配列内のアイテムを削除したい。私は更新を試みました:

array('$unset' => array('item.key' => 1))

array('$pull' => array('item.key' => 1))

を実行すると$unset、キーは保持されますが、値が無効になります。完全に削除したいと思います。プルは何もしませんでした。

助言がありますか?

ありがとうございました!

4

1 に答える 1

2

使用$pullするには、削除する配列要素全体を指定する必要があります。幸いなことに、削除する$pull要素の一致基準を指定できるという点で特別$pullです

次に例を示します。

db.array.update({},{$pull:{a:{"key2":{$exists:true}}}},{multi:true})

これにより、値に関係なく、「key2」がキー名として存在する配列要素が削除されます。これがあなたが望むもののように聞こえます。

ここに参照があります。

于 2012-11-04T21:19:40.650 に答える