在pymongo上用avg进行聚合查询得到nan

时间:2018-05-17 21:26:22

标签: python mongodb aggregation-framework pymongo

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}

1 个答案:

答案 0 :(得分:0)

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