gpt4 book ai didi

mongodb - 如何在 MongoDB 的 $lookup 中返回单个对象而不是数组?

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

当我们在 MongoDB聚合查询中使用 $lookup 时,我们使用这种格式

{
$lookup:
{
from: "users",
localField: "userId",
foreignField: "_id",
as: "user"
}
}

其中 user 作为对象数组返回,有时我们需要在 $project 阶段使用 $arrayElemAt 返回作为单个对象。喜欢

{
$project:
{
user:
{
$arrayElemAt: [ "$user", 0 ]
}
}
}

所以我的问题是我们如何才能将 user 作为单个对象而不是 array$lookup 返回阶段 ?

最佳答案

你还不能用 $lookup 做到这一点,最简洁的方法是在之后添加一个新阶段,如下所示:

{
$unwind: "$user"
}

由于每个文档只有一个用户,所以您最终会得到相同的集合,但这次用户不再是一个数组。如果每个文档有多个用户(例如 2 个),您最终会得到 2 个文档,每个用户一个。

关于mongodb - 如何在 MongoDB 的 $lookup 中返回单个对象而不是数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41482559/

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