gpt4 book ai didi

node.js - mongodb/mongoose 使聚合 $lookup 成为可选的

转载 作者:可可西里 更新时间:2023-11-01 10:02:12 26 4
gpt4 key购买 nike

我有这个mongodb查询

Job.aggregate([ 
{$match: {created_by: req.params.userId }},
{$lookup: {
from: "users",
localField: "applicant._id",
foreignField: "_id",
as: "applicant" }},
{$unwind: '$applicant'}
])

applicant._id 为空时无效。这不是我想要的,如何使 $lookup 成为可选的?

最佳答案

$lookup 做外连接,不匹配则不过滤。

问题出在 $unwind 上,它会在数组为 null 或空时进行过滤,为了不过滤空数组,您需要指定 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}
}
])

关于node.js - mongodb/mongoose 使聚合 $lookup 成为可选的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48354575/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com