-
単純なフィールドの検索: オブジェクトの特定のフィールドを検索する場合は、ドット記法を使用します。例えば、以下のようなドキュメントがあるとします。
{ "users": [ { "name": "Alice", "age": 25 }, { "name": "Bob", "age": 30 } ] }
上記の例では、"users"配列内の"name"フィールドが特定の値を持つオブジェクトを検索します。
db.collection.find({ "users.name": "Alice" })
-
条件に基づく配列の要素の検索: 配列の要素を特定の条件に基づいて検索する場合は、$elemMatch演算子を使用します。例えば、以下のようなドキュメントがあるとします。
{ "users": [ { "name": "Alice", "age": 25 }, { "name": "Bob", "age": 30 }, { "name": "Charlie", "age": 35 } ] }
上記の例では、"users"配列内の"age"フィールドが25より大きく、30より小さいオブジェクトを検索します。
db.collection.find({ "users": { $elemMatch: { "age": { $gt: 25, $lt: 30 } } } })
-
配列の要素のプロパティのみを返す: 配列の要素の特定のプロパティのみを返す場合は、投影操作子を使用します。例えば、以下のようなドキュメントがあるとします。
{ "users": [ { "name": "Alice", "age": 25 }, { "name": "Bob", "age": 30 } ] }
上記の例では、"users"配列内のオブジェクトの"name"フィールドのみを返します。
db.collection.find({}, { "users.name": 1 })
これらはMongoDBで配列のオブジェクトを検索するためのいくつかの基本的な方法です。検索の詳細な条件や要件に応じて、さらに高度なクエリを構築することもできます。