我需要有关已创建查询的专家评估。集合"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 in any" type"。
编写汇总查询以选择具有"考试"结果> 90。
添加字段"已接受"学生Dan Doe value = true
。
解决方案:
1
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
}
}]
}]
})
2。
db.myresults.aggregate([{
$unwind: "$scores"
}, {
$match: {
$and: [{
type: "exam"
}, {
score: {
$gt: 90
}
}]
}
}])
db.myresults.update({name: "Dan Doe"}, {$set: {accepted: true}})
P.S。 "接受"在第三个任务中成功添加......但是当选择它时,Dan Doe就是两个......并且接受了#34;只写在第一...... ???