MongoDB联接2个表,并且选择字段为null

时间:2018-08-28 20:41:59

标签: mongodb meteor object-oriented-database

在MongoDB中

我有工作申请书。我有两个集合-JobsHelperJobs。 第一个集合包含所有作业,第二个集合将Helper映射到他们注册的工作。

我想选择当前登录用户尚未注册的所有作业。因此,以下代码可以恢复所有作业和辅助作业的交集,但是我希望它仅返回另一个字段(小时)为空的集合。

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

1 个答案:

答案 0 :(得分:0)

只需使用temp.hours字段在$ lookup之后添加$match进行过滤:

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