繁体   English   中英

查询数组内数组大小大于 1 的文档

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM