MongoDB在嵌入文档中找到最大值

时间:2019-04-22 14:02:29

标签: mongodb find max

这是我的收藏,我想找到在生物学课程中获得最高成绩的学生。

我尝试:

db.course.find(
{"Course_Name": 'Biology', "First_Name": 1, "Last_Name" :1}
).sort( {"Grade": -1 } ).limit(1)

但是什么都没出现……谁能告诉我原因以及如何解决? 谢谢!

-----收藏集--------

 {
        Course_ID:13,
        Course_Name: 'Biology',
        Students:[
            {student_id:001,
            First_Name:'Dave',
            Last_Name: 'Davis',
            Grade: 78},

            {student_id: 003,
            First_Name:'Thomas',
            Last_Name: 'Thompson',
            Grade: 80}
        ]
    }

1 个答案:

答案 0 :(得分:0)

解决方案在这里:

  db.getCollection('course').aggregate([{
        $match: {
            "Course_Name": 'Biology'
        }
    },
    {
        $unwind: "$Students"
    },
    {
        $sort: {
            "Students.Grade": -1
        }
    },
    {
        $project: {
            "Students.First_Name": 1,
            "Students.Last_Name": 1
        }
    },
    {
        $limit: 1
    }
])