我在管道mongo查询中有多个查询。如果未定义任何填充字段,则我不想省略此行。我可以这样做吗?
const pipeline = [
{ $unwind: "$wholesaler" },
{
$lookup: {
from: "serviceproviders",
localField: "serviceProvider",
foreignField: "_id",
as: "serviceProvider"
}
},
{ $unwind: "$serviceProvider" },
{
$sort: {
createdAt: 1,
updatedAt: 1
}
}
];
如果未找到服务提供商ID,则返回我想要的对象的其余部分。
答案 0 :(得分:0)
从MongoDB document:
preserveNullAndEmptyArrays
如果为true,则路径为 如果为null,缺少数组或为空数组,则$ unwind将输出文档。如果 否,如果路径为空,则$ unwind不输出文档, 缺少或为空数组。
默认值为false。
因此请在下面使用:
{
$unwind: {
path: "$serviceProvider",
"preserveNullAndEmptyArrays": true
}
}
在此处检查示例数据(https://mongoplayground.net/p/aljWODXfwQg)