mongodb 聚合嵌套数组过滤器不为空

mongodb aggregate nested arrays filter not empty

但是现在不知道怎么过滤
我正在汇总过滤后的数据:

[
       {
            "_id": "61cea071cfa3c96b9a4d2657",
            "name": "Utils",
            "children": [
                {
                    "name": "Code",
                    "_id": "61cebb4e6c4a5c643494d1a1",
                    "children": [{name:"jahn"}]
                },
                {
                    "name": "Image",
                    "_id": "61ceb8ad6c4a5c643494d11e",
                    "children": []
                }
            ]
        },
        {
            "_id": "61cea071cfa3c96b9a4d2111",
            "name": "Names",
            "children": [
               {
                    "name": "que",
                    "_id": "61cebb4e6c4a5c643494d1a1",
                    "children": [
                       
                     ]
                },
                {
                    "name": "filter",
                    "_id": "61cebb4e6c4a5c643494d1a1",
                    "children": [
                        {name:"jahn"}
                     ]
                }
            ]
        },
]

期待您的帮助 children为空不显示时如何过滤掉children
期望的结果:

[
        {
            "_id": "61cea071cfa3c96b9a4d2657",
            "name": "Utils",
            "children": [
                {
                    "name": "Code",
                    "_id": "61cebb4e6c4a5c643494d1a1",
                    "children": [
                        {name:"jahn"}
                     ]
                }
            ]
        },
        {
            "children": [
                {
                    "children": [
                        {name:"jahn"}
                     ]
                }
            ]
        },
]

我想要if children in children, 如果它是空的它不会显示整个对象

如果您尝试筛选第二级 children 数组,您可以使用 $filter.

db.collection.aggregate([
  {
    $project: {
      _id: 1,
      name: 1,
      children: {
        "$filter": {
          "input": "$children",
          "cond": {
            "$ne": [
              "$$this.children",
              []
            ]
          }
        }
      }
    }
  }
])

Sample Mongo Playground

注:

"$ne": [
  "$$this.children",
  []
]

可以替换为:

"$ne": [
  {
    $size: "$$this.children"
  },
  0
]