基于数组元素的MongoDb聚集条件

时间:2019-06-24 11:25:41

标签: node.js mongodb nosql aggregate

以下是我的文档结构:

{
   _id:1,
   testId:3,
   marksObtained:10,
   subjects:[
     {
        subjectId:1,
        marksObtained:6
     },
     {
        subjectId:2,
        marksObtained:4
     }
   ]
}

现在,我需要计算每个学科得分较高的学生人数,并在文档中进行更新。我能够在测试级别执行此操作,但是无法弄清楚如何在数组元素级别执行此操作。

因此,假设有一个学生的科目1得分更高,而有2个学生的科目得分更高,我需要将文档修改为如下所示:

{
   _id:1,
   testId:3,
   marksObtained:10,
   subjects:[
     {
        subjectId:1,
        marksObtained:6,
        rank:2
     },
     {
        subjectId:2,
        marksObtained:4,
        rank:3
     }
   ]
}

0 个答案:

没有答案