在MongoDB中查找

时间:2018-11-15 14:25:15

标签: mongodb aggregation-framework lookup

我在管道mongo查询中有多个查询。如果未定义任何填充字段,则我不想省略此行。我可以这样做吗?

const pipeline = [
  { $unwind: "$wholesaler" },
  {
    $lookup: {
      from: "serviceproviders",
      localField: "serviceProvider",
      foreignField: "_id",
      as: "serviceProvider"
    }
  },
  { $unwind: "$serviceProvider" },
  {
    $sort: {
      createdAt: 1,
      updatedAt: 1
    }
  }
];

如果未找到服务提供商ID,则返回我想要的对象的其余部分。

1 个答案:

答案 0 :(得分:0)

从MongoDB document

  

preserveNullAndEmptyArrays

     

如果为true,则路径为   如果为null,缺少数组或为空数组,则$ unwind将输出文档。如果   否,如果路径为空,则$ unwind不输出文档,   缺少或为空数组。

     

默认值为false。

因此请在下面使用:

{
  $unwind: {
    path: "$serviceProvider",
    "preserveNullAndEmptyArrays": true
  }
}

在此处检查示例数据(https://mongoplayground.net/p/aljWODXfwQg