MongoDB连接2个表,选择字段为空
在MongoDB 我有一份求职申请。我有两个集合-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",
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我更新了答案。没有测试,只是用内存编写