mongodb - PyMongo 聚合函数

需要旨在按类型找出电影总数的代码解决方案。我正在使用的代码是:

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}}}])

相似文章

随机推荐

最新文章