Jen*_*Mok 3 mongoose mongodb node.js express
我有 mongodb 的这个查询
Job.aggregate([
{$match: {created_by: req.params.userId }},
{$lookup: {
from: "users",
localField: "applicant._id",
foreignField: "_id",
as: "applicant" }},
{$unwind: '$applicant'}
])
Run Code Online (Sandbox Code Playgroud)
当申请人._id 为空时,它不起作用。那不是我想要的,如何将 $lookup 设为可选?
$lookup 执行外连接,如果没有匹配,它不会过滤。
问题在于$unwind,它会在数组为空或为空时进行过滤,为了不过滤您需要preserveNullAndEmptyArrays : true在$unwind管道中指定的空数组
Job.aggregate([
{$match: {created_by: req.params.userId }},
{$lookup: {
from: "users",
localField: "applicant._id",
foreignField: "_id",
as: "applicant" }
},
{$unwind: {
path :'$applicant',
preserveNullAndEmptyArrays: true}
}
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |