如何选择值高于平均值的文档

时间:2015-10-14 13:44:07

标签: mongodb mongodb-query aggregation-framework

我有一个学生集合,其文档具有以下结构:

<GridSplitter Grid.Column="1" Background="Green" 
              VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
              />

我想选择得分高于所有学生平均成绩的学生。

我试过跟随,但它只返回一个学生。

{
  "student_name": "john",
  "score": 39,
}

如果不止一个学生获得最高分,我想得到整个学生。

1 个答案:

答案 0 :(得分:1)

您需要使用.aggregate()方法和$avg累加器运算符。

var average = db.students.aggregate([
    { "$group": { "_id": "null", avg: { "$avg": "$score"} }}
]).toArray()[0]["avg"];

然后使用.find()方法

db.students.find({ "score": { "$gt": average } })