假设我有以下文档结构:
{ _id : 1,
items: [ {n: "Name", v: "Kevin"}, ..., {n: "Age", v: 100} ],
records : [ {n: "Environment", v: "Linux"}, ... , {n: "RecordNumber, v: 555} ]
}
items.n-items.v
如果我在and上创建 2 个复合索引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
.