我想编写一个查询来查找基于嵌套数组大小的所有文档。
//collection data example
{
prop1: 'value',
prop2:{
subprop1: [{Id:1,value:'abc'},{Id:2,value:'aa'}]
subprop2: false
}
},
{
prop1: 'value2',
prop2:{
subprop1: [{Id:11,value:'ww'},{Id:21,value:'33'},{Id:31,value:'asd'}]
subprop2: false
}
},
{
prop1: 'value3',
prop2:null
},
{
prop1: 'value4',
prop2:{
subprop1: null
subprop2: false
}
}
我尝试以下查询,但它抛出错误"this.prop2"是零。
db.collection.find({prop2 : {$exists:true}, $where:'this.prop2.subprop1.length>1'}
aggregate
db.collection.aggregate([
{
"$match": {
prop2: {
$exists: true
},
"prop2.subprop1": {
$not: {
"$eq": null
}
},
$expr: {
$gt: [
{
$size: "$prop2.subprop1"
},
2
]
}
}
}
])
mongoplayground