[英]Query for documents where array size inside array is greater than 1
我正在尝试查找是否存在任何文档并且大小超过一个列表,该列表位于 Mongo 的其他两个列表中。
这就是我的收藏的样子:
{
"value": {
"items": [
{
"docs": [
{
"numbers": [
1,
2
]
},
{
"numbers": [
1
]
}
]
}
]
}
}
我尝试使用此查询,但它不起作用:
db.getCollection('MyCollection').find({"value.items.docs.numbers":{ $exists: true, $gt: {$size: 1} }})
如果列表列表中存在多个项目,那么搜索的理想查询应该是什么。
$elemMatch
条件将有助于检查条件$size
只允许数字作为输入,因此$not
将有助于否定条件$ne
检查数组大小不应该 [] 为空db.getCollection('MyCollection').find({
"value.items": {
$elemMatch: {
docs: {
$elemMatch: {
numbers: {
$exists: true,
$ne: [],
$not: {
$size: 1
}
}
}
}
}
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.