Arrays 使用多个筛选器查询双嵌套数组
这是我的数据:Arrays 使用多个筛选器查询双嵌套数组,arrays,mongodb,nested,Arrays,Mongodb,Nested,这是我的数据: { "_id": 1, "items": [ [{"name": "a"}, {"size": 2}, {"color": "red"}], [{"name": "b"}, {"size": 4}, {"color": "blue"}], [{"name": "c"}, {"size": 6}, {"color": "pink"}] ] }, { "_id": 2, "items":
{
"_id": 1,
"items": [
[{"name": "a"}, {"size": 2}, {"color": "red"}],
[{"name": "b"}, {"size": 4}, {"color": "blue"}],
[{"name": "c"}, {"size": 6}, {"color": "pink"}]
]
},
{
"_id": 2,
"items": [
[{"name": "a"}, {"size": 3}, {"color": "black"}],
[{"name": "e"}, {"size": 6}, {"color": "blue"}],
[{"name": "g"}, {"size": 9}, {"color": "pink"}]
]
}
我需要这样做:
db.foo.find({items.name:“a”,items.color:“red”})
它不起作用为此,您可以使用
$elemMatch
关键字
db.foo.find({items: {$elemMatch: {name: "a", color: "red"} } });
这应该允许在一个数组中的文档的多个字段上进行匹配。我找到了以下解决方案:
db.foo.find({
items: {
$elemMatch: {
$all: [
{$elemMatch: {"name": "a"}},
{$elemMatch: {"color": "red"}}
]
}
}
});
谢谢大家 我的集合的可能重复项不同。请尝试类似以下操作:
db.foo.find({items:{$all:[“name”:“a”],[“color”:“red”]})代码>如果有效,请告诉我它不起作用。我得到一个错误->意外令牌: