40

Mongodb の配列フィールド (すべてのドキュメントにわたって) からすべての要素を削除する適切な方法を探しています。

db.collection.update({}, { $pull : { 'myArray': {} }}, {multi:true} )

また

db.collection.update({}, { $set : {'myArray': [] }} , {multi:true} )
4

3 に答える 3

37

$setバリアントは、配列で計算を行う必要があるため、高速になります$pull。クエリで要素を実際に削除していないため、実際に機能するかどうかさえわかりません。

于 2013-07-25T14:03:07.013 に答える
4

Mongodbの公式文書によると:

配列要素を一致させるために $ と共に使用すると、$unset は一致する要素を配列から削除するのではなく、一致する要素を null に置き換えます。この動作により、配列のサイズと要素の位置の一貫性が保たれます。

$set は適切な方法である必要があります。

于 2015-01-10T03:35:26.497 に答える