Поиски в MongoDB - PullRequest
       14

Поиски в MongoDB

0 голосов
/ 15 ноября 2018

У меня есть несколько поисков в конвейерном запросе Монго.если какое-либо заполненное поле не определено, я не хочу опускать эту строку.я могу сделать это?

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

Если идентификатор поставщика услуг не найден, его возвращаемый остаток объекта соответствует тому, что я хочу.

1 Ответ

0 голосов
/ 15 ноября 2018

Из MongoDB документ :

preserveNullAndEmptyArrays

Если true, если путь нулевой, отсутствует или пустой массив, $ unwind выводит документ.Если false, $ unwind не выводит документ, если путь имеет значение null, отсутствует или содержит пустой массив.

Значением по умолчанию является false.

Поэтому используйте ниже:

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

Проверьте здесь с примерами данных (https://mongoplayground.net/p/aljWODXfwQg)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...