Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python/mongoDB问题_Python_Mongodb Query - Fatal编程技术网

Python/mongoDB问题

Python/mongoDB问题,python,mongodb-query,Python,Mongodb Query,我正在学习如何对mongoDB使用Python,并且很难理解为什么我无法返回“$avg”聚合值。我有一个非常小的集合(总共9条记录),我似乎首先成功地使用了“$match”聚合函数来限制文档(似乎在管道的下游传递了3个文档)。但由于某些原因,“$avg”值未被计算 以下是我正在使用的代码: db.scores.aggregate( [ { "$match" : { "test" : "quiz1" } }, { "$group" : { "_id" : { "first" : "

我正在学习如何对mongoDB使用Python,并且很难理解为什么我无法返回
“$avg”
聚合值。我有一个非常小的集合(总共9条记录),我似乎首先成功地使用了
“$match”
聚合函数来限制文档(似乎在管道的下游传递了3个文档)。但由于某些原因,
“$avg”
值未被计算

以下是我正在使用的代码:

db.scores.aggregate( [
    { "$match" : { "test" : "quiz1" } },
    { "$group" : { "_id" : { "first" : "$first", "last" : "$last", "score" : "$score" }, "avgScore" : { "$avg" : "$score" } } }
    ])
这是我收到的输出:

{u'ok': 1.0, u'result': [{u'_id': {u'score': u'88', u'last': u'Black', u'first': u'Tom'}, u'avgScore': 0.0},
                         {u'_id': {u'score': u'87', u'last': u'Jones', u'first': u'Mary'}, u'avgScore': 0.0},
                         {u'_id': {u'score': u'89', u'last': u'Smith', u'first': u'Jay'}, u'avgScore': 0.0}]}
我不明白为什么管道中的“$group”语句中的3条记录没有返回
“$avg”
分数

如有任何想法/意见/建议,将不胜感激


谢谢

$avg
运算符处理数值,忽略非数值

返回从中得到的数值的平均值 将指定表达式应用于组中的每个文档 按键共享同一组的文档$avg忽略非数值 价值观

您的结果
u'score':u'88'
表明
score
字段的类型为
String
。您需要将它们存储为
数字