我是MongoDB的新手,查询有问题:
我有两个收藏夹:
{
"_id" : ObjectId("5c9dc666d73cde2924cc0a4d"),
"movieid" : NumberInt(1),
"customerid" : NumberInt(1488844),
"rating" : NumberInt(3),
"date" : ISODate("2005-09-06T00:00:00.000+0000")
}
{
"_id" : ObjectId("5c9dc68ad73cde2924cd94db"),
"movieid" : NumberInt(1001),
"year" : NumberInt(2001),
"title" : "Blow Dry"
}
我必须找到电影“恐龙星球”的每年和每月的平均评级,并按年和月的升序排列。
结果应如下所示:
{
"_id" : NumberInt(515436),
"year" : NumberInt(2001),
"month" : NumberInt(10),
"Average" : 3.0,
"Movietitle": "Dinosaur Planet"
}
我试图用不同的方法解决它,但没有结果。
db.getCollection("output2").aggregate([
{
"$lookup":
{
from: "movie_titles",
localField: "movieid",
foreignField: "movieid",
as: "movietitle"
}
},
{
"$group": {
"_id": {$year: '$date'},
"Average": { "$avg": "$rating" }
}
},
{
"$match": {
"title": "Dinosaur Planet"
}
}
]);
喜欢此查询。所以我的问题是我走的路是否正确,或者是否有人有解决此问题的好主意?
答案 0 :(得分:0)
您应该在jvmArguments
查询之后使用$match
,匹配字段将是$lookup
而不是movietitle.title
:
title