首页 > 解决方案 > 在 pymongo 上使用 avg 聚合查询 get nan

问题描述

我对 pymongo 聚合查询中的 Average 函数有疑问。

我有这样的结构:

{'_id': ObjectId('5afd9c675e3a1f0e9b830510'),
  'actor_gender': 'NaN',
  'actor_id': 'NaN',
  'actor_last_name': 'Safary',
  'actor_name': 'Darsheel',
  'actor_role': 'NaN',
  'director_id': 'NaN',
  'director_last_name': 'Khan',
  'director_name': 'Aamir',
  'movie_genre': 'Drama',
  'movie_name': 'Taare Zameen Par',
  'movie_rank': 8.5,
  'movie_year': 2007}

当我计算这个查询时:

coll.aggregate([{"$group":{"_id":{"movie_genre":"Drama"},
                    "avg":{"$avg":"$movie_rank"}}}])

nan平均得到这个:

{'_id': {'movie_genre': 'Drama'}, 'avg': nan}

标签: pythonmongodbaggregation-frameworkpymongo

解决方案


具有 nan 值的 Mongodb 聚合将 NAN 作为输出(https://jira.mongodb.org/plugins/servlet/mobile#issue/SERVER-27472)您必须在 movie_rank 字段中有一些 nan 值。


推荐阅读