$each
定義
$each
$each
修飾子は$addToSet
演算子および$push
演算子で使用できます。値が
<field>
に存在しない場合に、配列<field>
に複数の値を追加するには、$addToSet
演算子と共に使用します。{ $addToSet: { <field>: { $each: [ <value1>, <value2> ... ] } } } $push
演算子と一緒に使用して、配列<field>
に複数の値を追加します。{ $push: { <field>: { $each: [ <value1>, <value2> ... ] } } } $push
演算子は、$each
修飾子を他の修飾子とともに使用できます。$push
で使用できる修飾子の一覧については、「修飾子」を参照してください。
動作
MongoDB 5.0 以降、更新演算子では名前が文字列ベースのドキュメントフィールドを辞書順に処理します。数値名のフィールドは、数値順に処理されます。詳細については、「更新演算子の動作」を参照してください。
例
$each
$push
演算子とともに を使用する
次の例では、name
フィールドが joe
に等しいドキュメントの scores
配列に [ 90, 92, 85 ]
の各要素を追加します。
db.students.updateOne( { name: "joe" }, { $push: { scores: { $each: [ 90, 92, 85 ] } } } )
$each
$addToSet
演算子とともに を使用する
コレクション inventory
には、次のドキュメントがあります。
{ _id: 2, item: "cable", tags: [ "electronics", "supplies" ] }
次の操作では、$addToSet
演算子と $each
修飾子を使用して、tags
配列に複数の要素を追加します。
db.inventory.updateOne( { _id: 2 }, { $addToSet: { tags: { $each: [ "camera", "electronics", "accessories" ] } } } )
この操作では、"camera"
と"accessories"
のみが tags
配列に追加されます。"electronics"
はすでに配列内に存在しました。
{ _id: 2, item: "cable", tags: [ "electronics", "supplies", "camera", "accessories" ] }