我有像这样的集合条目
[ { shape : [{id:1,status:true},{id:2,status:false}] }, { shape : [{id:1,status:true}] } ]
我想获取与数组完全匹配的数据,意味着包含所有ele。数组。
实施例。其中shape.id = [1,2] / [{id:[1,2]}](任何人都喜欢)
那么它应该只返回
[ { shape : [{id:1,status:true},{id:2,status:false}] } ]
如果有任何本机mongodb查询,请帮助我。
由于
- ND
答案 0 :(得分:2)
这是一个更简单的查询;
db.shapes.find({'shape.id':{$all:[1,2]},shape:{$size:2}});
答案 1 :(得分:1)
如果mongo文件如下
{
"_id" : ObjectId("54eeb68c8716ec70106ee33b"),
"shapeSize" : [
{
"shape" : [
{
"id" : 1,
"status" : true
},
{
"id" : 2,
"status" : false
}
]
},
{
"shape" : [
{
"id" : 1,
"status" : true
}
]
}
]
}
然后使用下面的聚合来匹配标准
db.collectionName.aggregate({
"$unwind": "$shapeSize"
}, {
"$match": {
"$and": [{
"shapeSize.shape.id": 2
}, {
"shapeSize.shape.id": 1
}]
}
}, {
"$project": {
"_id": 0,
"shape": "$shapeSize.shape"
}
})