比方说,我有以下的文档结构:查询蒙戈在两个阵列
{ _id : 1,
items: [ {n: "Name", v: "Kevin"}, ..., {n: "Age", v: 100} ],
records : [ {n: "Environment", v: "Linux"}, ... , {n: "RecordNumber, v: 555} ]
}
如果我创建items.n-items.v
和records.n-records.v
2个复合索引,我可以执行$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} } ]}})
我可以以某种方式进行使用该索引(ES)来搜索基于该项目和记录领域文档的查询?
找到在哪里item.n = “Name” 和item.v = “凯文” 和record.n = “RecordNumber” 和record.v所有文件= 100
我不知道这可以使用$all
。