【问题标题】:$lookup returns [] 0 elements array$lookup 返回 [] 0 个元素的数组
【发布时间】:2020-03-24 07:01:49
【问题描述】:

我正在 MongoDB 中做一个项目,并且是一个尝试学习和应用知识的初学者。

我的第一个收藏是电影(是这样的):

{
    "Movie_ID": {
        "$numberInt": "31"
    },
    "Movie_Name": "Tanhajhi",
    "Release_Date": {
        "$date": {
            "$numberLong": "1578643200000"
        }
    },
    "Genre": "Action"
}

我的第二次收藏评分(是这样的):

{
    "Rating_ID": {
        "$numberInt": "61"
    },
    "Person_ID": {
        "$numberInt": "11"
    },
    "Movie_ID": {
        "$numberInt": "31"
    },
    "Theatre_ID": {
        "$numberInt": "21"
    },
    "Movie_Rating": {
        "$numberInt": "5"
    },
    "Theatre_Rating": {
        "$numberInt": "2"
    }
}

我试图找出哪部电影得到了哪些人的评论。所以我写了这样的代码:

db.Movies.aggregate(
    [
        {
            $lookup:   
                {
                    from: "Ratings",
                    localField: "Movie_ID",
                    foreignField: "Movie_ID",
                    as: "M_Ratings"
                }
        }
    ]
)

但是上面的代码返回了一个空数组(里面有0个元素)。

【问题讨论】:

标签: mongodb join nosql aggregation-framework lookup


【解决方案1】:

您的$lookup 很棒, 问题在于 int 字段的定义 -> "$numberInt": "61"

如果您希望该字段为数字,则 2 个最佳选项是:

"Movie_ID": 31, // Your number will be double 
"Movie_ID": NumberInt("31"), // Your number will be int32 

无论哪种方式,$lookup 在此修复后应该可以正常工作(对于您定义的所有 int 字段)

从这里拿走,

use your.own_db

db.Movies.insertOne(
   {
    "Movie_ID": NumberInt("31"),
    ,
    "Movie_Name": "Tanhajhi",
    "Release_Date": {
        "$date": {
            "$numberLong": "1578643200000"
        }
    },
    "Genre": "Action"
}
)

db.Ratings.insertOne(
   {
    "Rating_ID": {
        $numberInt: "61"
    },
    "Person_ID": {
        "$numberInt": "11"
    },
    "Movie_ID": {
        "$numberInt": "31"
    },
    "Theatre_ID": {
        "$numberInt": "21"
    },
    "Movie_Rating": {
        "$numberInt": "5"
    },
    "Theatre_Rating": {
        "$numberInt": "2"
    }
}
)

db.Movies.find()
db.Ratings.find()
enter code here

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 2021-12-10
    • 2018-02-03
    • 1970-01-01
    • 2018-07-26
    • 2018-08-27
    • 2019-04-15
    相关资源
    最近更新 更多