Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB连接2个表,选择字段为空_Mongodb_Meteor_Object Oriented Database - Fatal编程技术网

MongoDB连接2个表,选择字段为空

MongoDB连接2个表,选择字段为空,mongodb,meteor,object-oriented-database,Mongodb,Meteor,Object Oriented Database,在MongoDB 我有一份求职申请。我有两个集合-Jobs和HelperJobs。 第一个集合包含所有作业,第二个集合将助手映射到他们注册的作业 我想选择当前登录用户尚未注册的所有作业。因此,下面的代码可以返回所有作业和助手作业的交集,但我希望它只返回另一个字段(小时)为空的集合 db.jobs.aggregate([{ $lookup: { from: "helperjobs", localField: "_id", foreignField: "job",

在MongoDB

我有一份求职申请。我有两个集合-
Jobs
HelperJobs
。 第一个集合包含所有作业,第二个集合将助手映射到他们注册的作业

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

db.jobs.aggregate([{
  $lookup: {
    from: "helperjobs",
    localField: "_id",
    foreignField: "job",
    as: "temp"
  }
}])
只需在$lookup之后使用
temp.hours
字段添加一个要筛选的:

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

看起来。。。直接在Mongo上运行时,{$eq:null}}没有返回。我将其替换为“temp.hours”:{$exists:false},这在Mongo上起到了作用。。我在Meteor中还有一些进一步的代码问题需要解决,但这让我解决了查询问题-thanksGood call我更新了答案。没有测试,只是用内存编写