$each (複数要素の指定)

最終更新:2026-10-09

$each (複数要素の指定)

$each は、$push と $addToSet に複数の値を渡すための修飾子です。`{ $push: { tags: { $each: ['a', 'b', 'c'] } } }` のように使います。$addToSet と組み合わせると、重複を排除しながら各値を追加します。単体では使えず、$push または $addToSet の中にネストする必要があります。$position、$slice、$sort と組み合わせて高度な配列管理もできます。

カテゴリ更新修飾子
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ $push: { <array field>: { $each: [ <value1>, <value2>, ... ] } } }

⚙️ パラメータ

配列フィールド追加先の配列フィールド。
値の配列追加する要素のリスト。

戻り値:更新結果

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $each: 複数のタグを追加
db.articles.updateOne(
  { _id: 1 },
  { $push: { tags: { $each: ['mongodb', 'database'] } } }
)

// $addToSet と $each の併用は重複排除付き
db.articles.updateOne(
  { _id: 1 },
  { $addToSet: { tags: { $each: ['database', 'nosql'] } } }
)

出力:

// tags に 2 つの値が追加される。2 回目は database がスキップされ nosql が追加される

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$each は単体で使えますか?
Aいいえ。$push または $addToSet の中で使う必要があります。
Q$addToSet と $each の重複排除はどう動作しますか?
A各値が個別にチェックされ、既存の値はスキップされるため重複が残りません。
Q$each は $sort と組み合わせられますか?
Aはい。$push 内で $each の後に $sort を使うと、追加後にソートされます。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%