Array (配列)

最終更新:2026-10-09

Array (配列)

Array は任意の BSON 値(ネストされた配列やドキュメントを含む)の順序付きリストです。マッチングはメンバーシップで、`{ tags: 'mongodb' }` は tags 配列にその値を持つドキュメントに一致します。`$elemMatch` は複数の条件を同じ要素に強制します。配列フィールドにインデックスを作るとマルチキーインデックスになり、各要素が個別に展開されます。

カテゴリBSON 型
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ tags: ["mongodb", "nosql"] }
db.posts.find({ tags: "mongodb" })
db.posts.find({ ratings: { $elemMatch: { score: { $gte: 4 }, user: "alice" } } })

戻り値:配列値そのもの。クエリでは一致するドキュメントを返します

▶ 例

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

// Array: メンバーシップと $elemMatch
use shop
db.posts.insertOne({ tags: ['mongodb', 'tutorial'], ratings: [{ score: 5, user: 'alice' }] })
db.posts.find({ tags: 'mongodb' })

出力:

{ _id: ObjectId('...'), tags: ['mongodb', 'tutorial'], ratings: [{ score: 5, user: 'alice' }] }

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q配列のマッチングは完全一致が必要ですか?
Aいいえ、メンバーシップです。{ tags: 'a' } は tags 配列に 'a' を含むドキュメントに一致し、配列全体の等値ではありません。
Q1つの要素に複数の条件をマッチさせるには?
A$elemMatch を使います: { score: ..., user: ... } のように全条件が同じ要素に適用されます。
Q配列にインデックスを作れますか?
Aはい。マルチキーインデックスが作成され、各要素が個別にインデックス化されます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%