-4 mongodb-query aggregation-framework
对于在美国发行且matos.viewer. rating 大于或等于3 的电影,计算一个名为num_favs 的新字段,该字段表示电影的演员字段中出现的最爱数量。
我不知道如何进一步进行,你能帮忙吗
favorites =
["Sandra Bullock",
"Tom Hanks",
"Julia Roberts",
"Kevin Spacey",
"George Clooney"]
db.movies.aggregate([
{ $match:{
'tomatoes.viewer.rating':{$gte:3},
"countries":"USA"
}
}
]).
Run Code Online (Sandbox Code Playgroud)
var favorites = [
"Sandra Bullock",
"Tom Hanks",
"Julia Roberts",
"Kevin Spacey",
"George Clooney"]
db.movies.aggregate([
{
$match:
{
"tomatoes.viewer.rating": { $gte:3 },
"cast":
{
$in:["Sandra Bullock","Tom Hanks","Julia Roberts","Kevin Spacey","George Clooney"]
}
}
},
{
$project:
{
_id:0,
"tomatoes.viewer.rating":1,
title:1,
cast:1,
num_favs:
{
$size:
{
$setIntersection:["$cast",favorites]
}
}
}
},
{
$sort:
{
"num_favs":-1,
"tomatoes.viewer.rating":-1,
title:-1
}
}
])
Run Code Online (Sandbox Code Playgroud)
我想这可能会给你正确的答案。我发现,如果你不匹配演员表,那么你在 num_favs 中会得到空白或 null,但如果你 $match 演员表,那么你会得到正确的答案。如有任何变更,请告知我。谢谢。
| 归档时间: |
|
| 查看次数: |
758 次 |
| 最近记录: |