在MongoDB中
我有工作申请书。我有两个集合-Jobs
和HelperJobs
。
第一个集合包含所有作业,第二个集合将Helper映射到他们注册的工作。
我想选择当前登录用户尚未注册的所有作业。因此,以下代码可以恢复所有作业和辅助作业的交集,但是我希望它仅返回另一个字段(小时)为空的集合。
db.jobs.aggregate([{
$lookup: {
from: "helperjobs",
localField: "_id",
foreignField: "job",
as: "temp"
}
}])
答案 0 :(得分:0)
只需使用temp.hours
字段在$ lookup之后添加$match进行过滤:
db.jobs.aggregate([{
$lookup: {
from: "helperjobs",
localField: "_id",
foreignField: "job",
as: "temp"
},
{
$match: { "temp.hours": { $exists:false } }
}
}])