Docs Menu
Docs Home
/
MongoDBマニュアル
/ / / /

$pullAll

項目一覧

  • 定義
  • 動作
$pullAll

$pullAll演算子は、既存の配列から指定された値のすべてのインスタンスを削除します。 クエリを指定して要素を削除する $pull演算子とは異なり、 $pullAllはリストに挙げられた値と一致する要素を削除します。

$pullAll 演算子の形式は次のとおりです。

{ $pullAll: { <field1>: [ <value1>, <value2> ... ], ... } }

<field> を埋め込みドキュメントまたは配列で指定するには、ドット表記を使用します。

MongoDB 5.0 以降、更新演算子では名前が文字列ベースのドキュメントフィールドを辞書順に処理します。数値名のフィールドは、数値順に処理されます。詳細については、「更新演算子の動作」を参照してください。

削除する<value>がドキュメントまたは配列の場合、 $pullAllは順序を含めて指定された<value>と完全に一致する配列内の要素のみを削除します。

MongoDB 5.0 以降、$pullAllなどの更新演算子を空のオペランド式({ })と併用しても、mongod でエラーが発生しなくなりました。空の更新を使用すると変更は一切されず、oplog エントリも作成されません(操作は実行されません)。

survey コレクションを次のように作成します。

db.survey.insertOne( { _id: 1, scores: [ 0, 2, 5, 5, 1, 0 ] } )

次の操作は、scores 配列から値「0」と「5」のすべてのインスタンスを削除します。

db.survey.updateOne( { _id: 1 }, { $pullAll: { scores: [ 0, 5 ] } } )

更新後、scores フィールドで「0」または「5」のインスタンスがなくなります。

{ "_id" : 1, "scores" : [ 2, 1 ] }

Tip

以下も参照してください。

戻る

$push

項目一覧