mongoose 删除匹配后填充数据为空的文档

hec6srdp  于 2023-03-30  发布在  Go
关注(0)|答案(1)|浏览(109)

我正在尝试在填充数据上添加过滤器。

"populate": [
            {
                "path": "attachments",
                "select": "_id type",
                "match": {
                    "type": {
                        "$in": [
                            2
                        ]
                    }
                }
            }
        ]

无过滤器的数据

[
  {
   _id : "6e43454gvbnbvb7888",
   name: "T1",
   attachments :{
         _id : "6errtfhg6757876898",
         type : 2
   }
  },
  {
   _id : "6e43454gvbnbvb7888",
   name: "T1",
   attachments :{
         _id : "6errtfhg6757876898",
         type : 1
   }
  }
]

当前结果如下。这里附件数据按指定过滤,但文档仍然存在。

[
  {
   _id : "6e43454gvbnbvb7888",
   name: "T1",
   attachments :[{
         _id : "6errtfhg6757876898",
         type : 2
   }]
  },
  {
   _id : "6e43454gvbnbvb7888",
   name: "T1",
   attachments :[]
  }
]

预期的结果如下。由于附件数据为空,因此不应进入结果。

[
  {
   _id : "6e43454gvbnbvb7888",
   name: "T1",
   attachments :{
         _id : "6errtfhg6757876898",
         type : 2
   }
  }
]

我需要删除附件为空的文档。

bsxbgnwa

bsxbgnwa1#

您可以使用match操作符添加下一个管道,以排除附件为[]的记录

相关问题