首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MongoDB文档中获取ID,然后从另一个文档中获取它们的相关值

从MongoDB文档中获取ID,然后从另一个文档中获取它们的相关值
EN

Stack Overflow用户
提问于 2018-10-12 05:53:26
回答 1查看 53关注 0票数 0

我试图从集合中的文档(用户)中获取一个id数组,然后通过在另一个集合中找到带有该id的文档(福利)来获取他们的名字。

我试过在$lookup上阅读,但是文档内容令人困惑,因为它没有给出一个真实的例子。

这将返回用户的好处,我可以理解这一点。

代码语言:javascript
复制
Users.findOne({username: req.params.username},{benefits: 1, _id: 0 }, function(err, user) {
 if(err)
   console.log(err);
 else
   res.json(user);
});

这是一个包含ID数组的用户集合示例。

代码语言:javascript
复制
{
    "_id" : ObjectId("5b997cf8082be41757b6d733"),
    "username" : "anonuser",
    "benefitsIds" : [ 
        ObjectId("5ba8345f1e56fe8e6caaaa07"), 
        ObjectId("5ba706d64e82292e72e9ae71")
    ]
}

现在,在另一个收藏(福利),我有他们的名字的好处。这是一个集合示例。

代码语言:javascript
复制
{
    "_id" : ObjectId("5ba706d64e82292e72e9ae71"),
    "benefit_name" : "Dental"
}

我只想拿回实际的福利名。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-12 14:35:19

代码语言:javascript
复制
db.users.aggregate(

    // Pipeline
    [
        // Stage 1
        {
            $unwind: {
                path: "$benefitsIds"

            }
        },

        // Stage 2
        {
            $lookup: // Equality Match
            {
                from: "benefits",
                localField: "benefitsIds",
                foreignField: "_id",
                as: "benefits"
            }


        }

    ]



);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52773074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档