我正在尝试在填充数据上添加过滤器。
"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
}
}
]
我需要删除附件为空的文档。
1条答案
按热度按时间bsxbgnwa1#
您可以使用match操作符添加下一个管道,以排除附件为[]的记录