Docs Menu

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

次の例では、name フィールドが joe に等しいドキュメントの scores 配列に [ 90, 92, 85 ] の各要素を追加します。

db.students.updateOne(
{ name: "joe" },
{ $push: { scores: { $each: [ 90, 92, 85 ] } } }
)

コレクション 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" ]
}

項目一覧