我在对象数组中找到并匹配_id和is_active两个键
ex
{
_id:'12333333333333'
name:'test',
array:[{
id:'1233449',
is_active:true
},{
id:'7987979',
is_active:false
},{
id:'9558555',
is_active:true
},{
id:'2564654',
is_active:false
}]
}
使用mongo查询查找数据
db.getCollection('demo').find({'array.id':'7987979','array.is_active':false});
不起作用
答案 0 :(得分:0)
它对您不起作用的原因是因为您正在直接在阵列上运行查找操作。
查询数组中的内容时,可以使用$elemMatch
获取包含匹配数组元素的整个文档。
如果您需要自定义输出,则可以在数组字段的管道中使用$unwind
操作进行聚合。
在您的收藏中尝试一下,了解它的作用
db.collectionName.aggregate([{
$unwind:"$array"
},{
$match:{
$and:[
{"array.id":'your_id'},
{"array.is_active":boolean}
]
}
}
])