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/)を参照してください。