javascript - 如何根据填充项的 null 过滤数据
问题描述
我确实有对象。例如 -
{
active: true,
category: { _id: 1212, name: 'something', active: false},
name: "test",
}
我的类别对象来自 mongodb 填充项目。现在,当我填充项目时,我根据 active=false 对其进行过滤。在类别字段上返回 null 。例如,
{
active: true,
category: null,
name: "test",
}
现在我的主要重点是如果类别为空,则删除此对象。
我确实像这样使用 -
match: { category: { $exists: true } },
populate: "category"
但它不起作用,因为最初存在类别对象。但是在填充并基于活动状态后,它变为空。
那么如果类别为空,那么删除此对象的最佳方法是什么。
注意:我知道它可以使用聚合。但是我不使用聚合,因为查询太长了。如果我做聚合,我必须改变很多事情。并且填充是多级的。所以这将是一个问题。
解决方案
在您的代码中,您正在寻找一个“存在”的字段,即使它的值为空,该字段就在那里。您可以只搜索空值,它应该可以工作。
match: { category: null }
推荐阅读
- c# - 想要得到 405(不允许的方法)而不是 404
- ionic-framework - ionic 4 增加复选框图标大小
- angular - Angular - 将字符串解析为 {{ dataObject + VARIABLE }} where VARIABLE = 'object?.key.something | 管道'
- python-3.x - 使用 tkinter 使用套接字客户端的 pythonic 方法是什么?
- javascript - 在 puppeteer 请求中使用不同的 IP 地址
- reactjs - Cypress 找不到 Material-UI 的 textarea
- php - PHP - 使用空合并运算符通过引用赋值
- java - 在java中读取文本文件的问题
- arrays - 如何减少数组中移动操作的数量?
- git - 在推送的分支中压缩历史提交