MongoDB объединяет 2 таблицы и выбирает пустое поле - PullRequest
0 голосов
/ 28 августа 2018

В MongoDB

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

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

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

1 Ответ

0 голосов
/ 29 августа 2018

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

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