【问题标题】:"Join" operator in mongodbMongoDB中的“加入”运算符
【发布时间】:2017-01-11 16:28:08
【问题描述】:

我在 MongoDB 的简单数据库中有两个集合:电影和演员。电影集合中的一个条目如下所示:

MOVIES COLLECTION
    {
    "_id" : ObjectId("id1"),
    "pre_mongified_id" : 19,
    "name" : "Borovo' Institut",
    "year" : 1984
    }

actors 集合中的一个条目如下所示:

ACTORS COLLECTION
{
    "_id" : ObjectId("actor1"),
    "pre_mongified_id" : 20,
    "first_name" : "asdf",
    "second_name" : "asdf"
    "roles" : [
    {
    "movie_id": ObjectId("id1"),
    "role": "Huseini"
    }
    ]
}

所以我的问题是:我怎样才能“加入”这些集合,以便我可以获取有关演员的信息,以及他所扮演的电影的名称(名称属性)。所以,而不是“movie_id” "roles" 数组,我要获取电影名?

【问题讨论】:

  • 你需要 1) MongoDB 3.4 2) 阅读一些关于聚合 $lookup 的信息 3) 尝试编写一些代码

标签: mongodb mongodb-query


【解决方案1】:

你需要有 mongodb 版本 >= 3.2

db.MOVIES.aggregate([{
    $lookup: {
            from: "ACTORS",
            localField: "_id",
            foreignField: "roles.movie_id",
            as: "MOVIES_ACTOR_DETAILS"
        }
}])


db.ACTORS.aggregate([{
     {
        $unwind: "$roles"
     },

    $lookup: {
            from: "MOVIES",
            localField: "movie_id",
            foreignField: "_id",
            as: "ACTOR_MOVIES"
        }
}])

更多详情请查看mongodb lookup

【讨论】:

    猜你喜欢
    • 2019-03-04
    • 2012-10-08
    • 2019-11-02
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    相关资源
    最近更新 更多