首页 > 解决方案 > 如何在从其他集合 mongodb 嵌入的数组中选择具有 id 的集合

问题描述

我有两个收藏:照片和用户。我想在从照片集合中嵌入的喜欢数组中选择具有 user_id 的列表用户。

相片:

{
    "_id" : ObjectId(""),
    "title": "Title",
    "likes" : [ 
        {
            "user_id" : ObjectId("")
        }, 
        {
            "user_id" : ObjectId("")
        }
    ],
}

用户:

{
    {
    "_id" : ObjectId(""),
    "name": "Name1",
    "avatar": "Path1",
    },

    {
    "_id" : ObjectId(""),
    "name": "Name2",
    "avatar": "Path2",
    },
}

分页输出:

{
        {
        "_id" : ObjectId(""),
        "name": "Name1",
        "avatar": "Path1",
        },

        {
        "_id" : ObjectId(""),
        "name": "Name2",
        "avatar": "Path2",
        },
    }

标签: mongodbmongodb-query

解决方案


我想这会帮助你...

db.getCollection('photos').aggregate([{ $lookup:
   {
     from: "users",
     localField: "likes.user_id",
     foreignField: "_id",
     as: "likes"
   }

} ])

输出是:

{
"_id" : ObjectId(""),
"title" : "Title",
"likes" : [ 
    {
        "_id" : ObjectId(""),
        "name" : "Name1",
        "avatar" : "Path1"
    }, 
    {
        "_id" : ObjectId(""),
        "name" : "Name2",
        "avatar" : "Path2"
    }
]

}


推荐阅读