国内经济与贸易学院组织反电信网络欺骗线上答题流动,发展集中普法宣传教育流动,从而构筑立体化反欺骗防线。

通过此次较量,疏导宽广同学时刻牢记反欺骗内容,进步师生的自我财产平安防备意识,增强自我网络爱护的思维理念,守护好大家的“钱袋子”。

先看一下如何查问,将这两个表连起来的数据是class表中的id和student表中的class_id。所以咱们应该先查出徐老师所在班级的id,是2,而后再查问student表中class_id为2的学生,张二和李二,计算这两个学生的均匀问题。应用lookup函数实现联表查问:lookup({
from: <要连贯的汇合名>,
localField: <输出记录的要进行相等匹配的字段>,
foreignField: <被连贯汇合的要进行相等匹配的字段>,
as: <输入的数组字段名>
})间接返回学生问题平均值如果想要在被连贯的表格student做聚合操作,就用pipeline办法。然而pipeline不能与localField、foreignField共用,所以咱们先删掉localField、foreignField再在pipeline中获得学生问题(score)的平均值.lookup({
from: 'student',
pipeline: $.pipeline()

.group({  _id: null,  score: $.avg('$score') }).done(),

as: 'stu'
})
.match({
teacher:"徐老师"
})
.end()当初打印进去的数据是这样的:{"list":
[

{"_id":"5e847ab25eb9428600a512352fa6c7c4",  "id":2,  "teacher":"徐老师",  "cname":"二班",  "stu":[    {"_id":null,      "score":90    }  ]}

]
}然而当初输入的数据有点简单,如果只想显示teacher和score这两个值,咱们再进行上面的操作。只显示teacher和score这两个值.lookup({
from: 'student',
pipeline: $.pipeline()

.group({    _id: null,  score: $.avg('$score')}).done(),

as: 'stu'
})
.match({
teacher:"徐老师"
})
.replaceRoot({
newRoot: $.mergeObjects([$.arrayElemAt(['$stu', 0]), '$$ROOT'])
})
.project({
_id:0,
teacher:1,
score:1
})
.end()当初打印进去的数据是这样的:{"list":
[

{"score":90,"teacher":"徐老师"}

]
}这里看文档的相干解释是:replaceRoot({ newRoot: <表达式> })是固定写法,将已有字段作为一个新节点输入,咱们通常用他来将二级数组变成一级数组。mergeObjects是累计器操作符,$.arrayElemAt(['$stu', 0]), '$$ROOT’]就是将stu数组中的第一个元素,也就是[{"_id":null,"score":90}]合并到数组的跟节点下面,也就是与teacher、cname这些字段同一级。project外面将_id前面设为0,将咱们想要显示的元素前面设为1,就能管制最初输入的字段。