MongoDBで配列内の値をクエリする方法

MongoDBでは$elemMatch演算子を使用して配列内の値を検索できます。

例えば、`users`というコレクションがあり、以下のドキュメント構造の場合を想定します。

{
  "_id": ObjectId("5f6e2e6f1df397081fc0e8e0"),
  "name": "John",
  "age": 30,
  "hobbies": ["reading", "cooking", "travelling"]
}

hobbies配列に特定の値があるかどうかを照会するには、以下の照会を使用します。

db.users.find({ hobbies: { $elemMatch: { $eq: "reading" } } })

上記のクエリは、hobbies 配列に”reading”という値が含まれるドキュメントを返します。

hobbies配列に複数の値を含むドキュメントをクエリする場合、次のクエリを使用できます。

db.users.find({ hobbies: { $all: ["reading", "cooking"] } })

上記のクエリは、hobbies 配列が “reading” と “cooking” の両方を同時に含むドキュメントを返します。

また、他の絞り込み条件を組み合わせることで、配列内の値をさらに絞り込むことができます。

配列のクエリに関する詳しい情報は、MongoDB の公式ドキュメント(https://docs.mongodb.com/manual/tutorial/query-arrays/)を参照してください。

bannerAds