mongodb - 在 MongoDB 中查找
问题描述
我在管道 mongo 查询中有多个查找。如果任何填充字段未定义,我不想省略这一行。我可以这样做吗?
const pipeline = [
{ $unwind: "$wholesaler" },
{
$lookup: {
from: "serviceproviders",
localField: "serviceProvider",
foreignField: "_id",
as: "serviceProvider"
}
},
{ $unwind: "$serviceProvider" },
{
$sort: {
createdAt: 1,
updatedAt: 1
}
}
];
如果未找到服务提供者 ID,则返回我想要的对象的其余部分。
解决方案
来自 MongoDB文档:
保留NullAndEmptyArrays
如果为真,如果路径为空、缺失或为空数组,则 $unwind 输出文档。如果为 false,如果路径为空、缺失或为空数组,$unwind 不会输出文档。
默认值为假。
所以在下面使用:
{
$unwind: {
path: "$serviceProvider",
"preserveNullAndEmptyArrays": true
}
}
在此处查看示例数据(https://mongoplayground.net/p/aljWODXfwQg)
推荐阅读
- python - 将 datetime64 转换为数字
- python - 为什么我不能只 +int 到一个变量(Python)
- swift - 从 3 维数组中获取元素
- java - 如果条件不适用于 table.getValueAt JAVA swing
- facebook - FB 阻止链接到 Facebook 身份验证
- ios - 快速刷新时,错误的 UICollectionView 被加载到 Venue UITableviewCell 中
- python - If Else 在一行上得到条件表达式错误
- python - 重启后的 Django docker-compose 需要再次迁移
- vuejs2 - Vee-Validate 具有范围的自定义错误组件
- javascript - 如何禁用调整弹出窗口的大小?