需要旨在按类型找出电影总数的代码解决方案。我正在使用的代码是:
agg_result = movies_collection.aggregate(
[{"$match": {}},{"$group":
{"_id":"$genres",
"Total movie count":{"$sum":1}
}}
])
for i in agg_result:
print(i)
我需要每种类型的电影,但由于上传的 csv 文件在流派字段中有多个条目,因此示例输出出错了。
示例输出如下:{'_id':'动画|儿童|喜剧|幻想','电影总数':6} {'_id':'动作|戏剧|恐怖|IMAX','电影总数':1 }
回答1
询问
- 在“|”上拆分流派字符串
- 放松,所以每个文档 1 个类型
- 分组并计算类型
*我认为您还应该更新集合并使流派成为普通数组,字符串带有“|”似乎不是很好的架构。
https://cmql.org/playmongo/?q=62806134853f039c69b0f8da
aggregate(
[{"$set": {"genres": {"$split": ["$genres", "|"]}}},
{"$unwind": "$genres"},
{"$group": {"_id": "$genres", "count": {"$sum": 1}}}])