次のドキュメント構造があるとします。
{ _id : 1,
items: [ {n: "Name", v: "Kevin"}, ..., {n: "Age", v: 100} ],
records : [ {n: "Environment", v: "Linux"}, ... , {n: "RecordNumber, v: 555} ]
}
と に 2 つの複合インデックスを作成するitems.n-items.v
とrecords.n-records.v
、$all
クエリを実行できます。
db.collection.find( {"items" : {$all : [{ $elemMatch: {n: "Name", v: "Kevin"} },
{$elemMatch: {n: "Age", v: 100} } ]}})
で同様の検索を実行することもできますrecords
。
db.collection.find( {"records" : {$all : [{ $elemMatch: {n: "Environment", v: "Linux"} },
{$elemMatch: {n: "RecordNumber", v: 555} } ]}})
インデックスを使用してアイテムとレコードフィールドに基づいてドキュメントを検索するクエリを実行できますか?
item.n = "Name" and item.v = "Kevin" AND record.n="RecordNumber" and record.v = 100 であるすべてのドキュメントを検索します
を使用してこれが可能かどうかはわかりません$all
。