需要专家意见-mongodb查询

需要专家意见-mongodb查询,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我需要专家评估有关创建的查询。有一个集合“myresults”,其中包含此类视图的文档: { "_id": 0, "name": "aimee Zank", "scores": [{ "type": "exam", "score": 1.463179736705023 }, { "type": "quiz", "score": 11.78273309957772 }, { "type": "homework",

我需要专家评估有关创建的查询。有一个集合
“myresults”
,其中包含此类视图的文档:

{
    "_id": 0,
    "name": "aimee Zank",
    "scores": [{
    "type": "exam",
    "score": 1.463179736705023
    }, {
    "type": "quiz",
    "score": 11.78273309957772
    }, {
    "type": "homework",
    "score": 6.676176060654615
    }, {
    "type": "homework",
    "score": 35.8740349954354
    }]
}
任务:

  • 编写查询,搜索任何“类型”中“分数”>93和<95的所有学生

  • 编写聚合查询以选择“考试”结果>90的学生

  • 为学生Dan Doe添加值为true的字段“accepted”

  • 解决方案:

    一,

    二,

  • db.myresults.update({name:“Dan Doe”},{$set:{accepted:true}})

  • p.S.“已接受”已成功添加到第三个任务中。。。但是当选择的时候,结果是丹·多伊是两个。。。“接受”只写在第一个

    你只在第三个任务中面临问题?不仅仅是第三个任务。。。选择结果1和2也会显示一些奇怪的输出…关于第2点:您的查询的预期结果文档是什么?仅仅是学生的名字,或者该学生的所有考试成绩都超过90分?关于第3点:您确定要使用
    name
    作为键进行更新吗?我的意思是,您是否只是希望将
    接受的
    字段设置为具有
    名称的所有文档
    “Dan Doe”
    ?您只会在第三个任务中遇到问题?不仅仅是第三个任务。。。选择结果1和2也会显示一些奇怪的输出…关于第2点:您的查询的预期结果文档是什么?仅仅是学生的名字,或者该学生的所有考试成绩都超过90分?关于第3点:您确定要使用
    name
    作为键进行更新吗?我的意思是,您是否只是希望将
    接受的
    字段设置为具有
    名称的所有文档
    “Dan Doe”
    ?您只会在第三个任务中遇到问题?不仅仅是第三个任务。。。选择结果1和2也会显示一些奇怪的输出…关于第2点:您的查询的预期结果文档是什么?仅仅是学生的名字,或者该学生的所有考试成绩都超过90分?关于第3点:您确定要使用
    name
    作为键进行更新吗?我的意思是,您是否只是希望将
    接受的
    字段设置为所有名为
    的文档?
    
    db.myresults.find({
    $or: [{
        $and: [{
            "scores.type": "exam"
        }, {
            "scores.score": {
                $gt: 93
            }
        }, {
            "scores.score": {
                $lt: 95
            }
        }]
    }, {
        $and: [{
            "scores.type": "quiz"
        }, {
            "scores.score": {
                $gt: 93
            }
        }, {
            "scores.score": {
                $lt: 95
            }
        }]
    }, {
        $and: [{
            "scores.type": "homework"
        }, {
            "scores.score": {
                $gt: 93
            }
        }, {
            "scores.score": {
                $lt: 95
            }
        }]
    }]
    })
    
    db.myresults.aggregate([{
        $unwind: "$scores"
    }, {
        $match: {
        $and: [{
            type: "exam"
        }, {
            score: {
                $gt: 90
            }
        }]
        }
    }])