MongoDB |基于多个属性查询对象数组
如果这是我的数据:MongoDB |基于多个属性查询对象数组,mongodb,Mongodb,如果这是我的数据: { 店主:“约翰”, 宠物:[ { 名字:“奥斯卡”, 年龄:7岁, 类型:“狗” },{ 名字:“奥斯卡II”, 年龄:3岁, 类型:“狗” } ] },{ 店主:“莎莉”, 宠物:[ { 名称:'点', 年龄:7岁, 类型:“猫” },{ 名字:“狗先生”, 年龄:3岁, 类型:“狗” } ] } 我如何建立一个查询,以获得每一个拥有一只7岁的狗的主人 我试过: owner.findOne({ “宠物。年龄”:7岁, “pets.type”:“dog” }); 但这会
{
店主:“约翰”,
宠物:[
{
名字:“奥斯卡”,
年龄:7岁,
类型:“狗”
},{
名字:“奥斯卡II”,
年龄:3岁,
类型:“狗”
}
]
},{
店主:“莎莉”,
宠物:[
{
名称:'点',
年龄:7岁,
类型:“猫”
},{
名字:“狗先生”,
年龄:3岁,
类型:“狗”
}
]
}
我如何建立一个查询,以获得每一个拥有一只7岁的狗的主人
我试过:
owner.findOne({
“宠物。年龄”:7岁,
“pets.type”:“dog”
});
但这会让每一个拥有7岁宠物或某种狗的主人得到回报。对于上面的数据,它同时返回Sally和John。如何获取John?使用$elemMatch指定同一元素的所有约束:
Owners.findOne({
'pets': {
'$elemMatch' : {
'age': 7,
'type': 'dog'
}
}
});