MST

星途 面试题库

面试题:MongoDB聚合框架匹配阶段复杂逻辑及嵌套数组处理

有一个MongoDB集合存储了学生的考试信息,文档结构为:{ 'student_id': '字符串', 'exams': [ { 'exam_name': '字符串', 'date': '日期', 'grades': [ { 'subject': '字符串', 'score': 数值 } ] } ] }。编写一个聚合管道,使用匹配阶段找出在2023年1月1日之后参加过至少一次考试,且至少有一门科目成绩大于90分的学生。
22.4万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试
[
    {
        "$match": {
            "exams.date": {
                "$gt": ISODate("2023-01-01")
            }
        }
    },
    {
        "$unwind": "$exams"
    },
    {
        "$unwind": "$exams.grades"
    },
    {
        "$match": {
            "exams.grades.score": {
                "$gt": 90
            }
        }
    },
    {
        "$group": {
            "_id": "$student_id"
        }
    }
]