gpt4 book ai didi

MongoDB 聚合 : $lookup by _id, 然后获取第一个元素值

转载 作者:可可西里 更新时间:2023-11-01 09:57:13 24 4
gpt4 key购买 nike

当我执行 $lookup 时,在我的例子中是 foreignField:"_id",我在数组中找到找到的元素。这是在完成 $lookup 以从 users 集合中检索 fromUsertoUser 之后的输出文档:

{ 
_id : { from : 57b8da368e4a6e1f0043cb3d, to : 57c381af7008e51f009d92df },
fromUser : [
{
_id : 57b8da368e4a6e1f0043cb3d,
userName: "A"
}
],
toUser : [
{
_id : 57c381af7008e51f009d92df,
userName: "B"
}
]
}

您可以注意到 fromUsertoUser 是数组。如何投影 fromUsertoUser 因此它们只包含用户的 userName 而不是数组,如下所示:

{
_id : { from : 57b8da368e4a6e1f0043cb3d, to : 57c381af7008e51f009d92df },
fromUser: "A",
toUser: "B"
}

最佳答案

您可以通过使用 $arrayElemAt 添加一个 $project 阶段来实现这一点像这样对您的聚合管道进行运算符

// your previous stages incl. lookup
...
$project: {
fromUser: { $arrayElemAt: ["$fromUser.userName", 0] },
toUser: { $arrayElemAt: ["$toUser.userName", 0] }
}
...

关于MongoDB 聚合 : $lookup by _id, 然后获取第一个元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39216173/

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