MongoDB объединяет 2 таблицы и поле выбора равно нулю

В MongoDB

У меня есть заявление о приеме на работу. У меня есть две коллекции Jobs а также HelperJobs, Первая коллекция содержит все задания, а вторая отображает помощников на задания, на которые они подписаны.

Я хочу выбрать все задания, на которые текущий вошедший в систему пользователь не подписан. Таким образом, следующий код работает, чтобы вернуть коллекцию пересечения всех заданий и вспомогательных заданий, но я хочу, чтобы он возвращал только коллекцию, в которой другое поле (часы) является нулевым.

db.jobs.aggregate([{
  $lookup: {
    from: "helperjobs",
    localField: "_id",
    foreignField: "job",
    as: "temp"
  }
}])

1 ответ

Просто добавьте $match после поиска $, используя temp.hours поле для фильтрации:

db.jobs.aggregate([{
  $lookup: {
    from: "helperjobs",
    localField: "_id",
    foreignField: "job",
    as: "temp"
  },
  {
    $match: { "temp.hours": { $exists:false } }
  }
}])
Другие вопросы по тегам