gpt4 book ai didi

Mongodb $addFields 如果为 null 则不输出数据

转载 作者:行者123 更新时间:2023-12-02 19:36:15 27 4
gpt4 key购买 nike

我正在努力解决一个恼人的问题。我在查询中使用聚合,我需要加入一些集合,并且输出必须是一个对象。这是我的代码...

usersModel.aggregate([
{
$match: { _id: ObjectId(req.params.id) }
},
{
$lookup: {
from: "agents",
as: "agent",
let: { "idAgent": "$agent" }, //$agent can be null
pipeline: [
{
$match: {
$expr: {
$eq: ['$_id', "$$idAgent"]
},
}
}
],
}
},
{ $unwind: { path: '$agent', preserveNullAndEmptyArrays: true } },
{
$addFields: {
agent: "$agent", //If $agent is null, it does not output the field agent...
}
}

])

如果在最后一个Stage中,字段$agent为空,$addFields不会输出该字段。还有其他方法可以做到吗?查找后我只需要代理字段作为对象。谢谢

最佳答案

添加$ifNull条件为$addFields

{
"$addFields": {
"agent": { "$ifNull": ["$agent", {}] }
}
}

关于Mongodb $addFields 如果为 null 则不输出数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61017434/

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