buhong 发表于 2018-10-26 12:05:37

MongoDB University 第五周作业——aggregate聚合高级查询

db.grades.aggregate([  
                        {
  
                        $unwind : "$scores"
  
                        },
  
                        {
  
                        $match: {
  
                                    $or: [
  
                                          {"scores.type":"exam"},
  
                                          {"scores.type":"homework"}
  
                                       ]
  
                                  }
  
                        },
  
                        {
  
                        $group: {
  
                                    _id:{
  
                                          class_id: "$class_id",
  
                                          student_id: "$student_id"
  
                                        },
  
                                    grade:{
  
                                             $avg: "$scores.score"
  
                                          }
  
                                 }
  
                        },
  
                        {
  
                        $group: {
  
                                    _id:{
  
                                          class_id: "$_id.class_id"
  
                                       },
  
                                 avg_grade:{
  
                                          $avg: "$grade"
  
                                             }
  
                                  }
  
                        },
  
                        {
  
                                 $sort: { avg_grade : -1 }
  
                        },
  
                        {
  
                                 $limit:1
  
                        }
  
         ]).pretty()


页: [1]
查看完整版本: MongoDB University 第五周作业——aggregate聚合高级查询