【问题标题】:MongoDB join 2 tables and select field is nullMongoDB 加入 2 个表并且选择字段为空
【发布时间】:2018-08-28 20:41:59
【问题描述】:

在 MongoDB 中

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

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

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

【问题讨论】:

    标签: mongodb meteor object-oriented-database


    【解决方案1】:

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

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

    【讨论】:

    • 看起来 ... { $eq: null }} 当我直接在 Mongo 上运行它时没有返回。我用 "temp.hours": { $exists:false} 替换了它,这在 Mongo 上起到了作用。我在 Meteor 中有一些进一步的代码问题需要解决,但这让我解决了查询问题 - 谢谢
    • 好电话我更新了答案。没测试,凭记忆写的
    猜你喜欢
    • 1970-01-01
    • 2018-05-20
    • 2021-12-22
    • 2016-11-24
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    相关资源
    最近更新 更多