首页 > 解决方案 > MongoDB - 使用聚合更新

问题描述

我在 MongoDB 中有两个集合,学生和教师。下面我贴了一些例子

{
        "_id" : ObjectId("60565eae82976271d1cbc9df"),
        "nome" : "Giselle",
        "idade" : 37,
        "email" : "gigi@email.com",
        "senha" : "segurança",
        "cpf" : "875243087-36",
        "disciplinas" : [
                {
                        "nome" : "física",
                        "nota1" : 7,
                        "nota2" : 3,
                        "mediaFinal" : 5,
                        "professor" : "Carlos Aguiar"
                },
                {
                        "nome" : "português",
                        "nota1" : 9,
                        "nota2" : 9.5,
                        "mediaFinal" : 9.25,
                        "professor" : "Lourdes Silva"
                }
        ]
}


{
        "_id" : ObjectId("60565eaf82976271d1cbc9e1"),
        "nome" : "Lourdes Silva",
        "idade" : 38,
        "matricula" : 9751,
        "formacao" : "Letras Português",
        "disciplinas" : [
                "português",
                "literatura",
                "redação"
        ]
}
{
        "_id" : ObjectId("60565eaf82976271d1cbc9e2"),
        "nome" : "Carlos Aguiar",
        "idade" : 28,
        "matricula" : 5472,
        "formacao" : "Física",
        "disciplinas" : [
                "física"
        ]
}

我想用教师集合中的 _id 更新集合学生 disciplinas.professor。这个例子的预期结果应该是:

{
        "_id" : ObjectId("60565eae82976271d1cbc9df"),
        "nome" : "Giselle",
        "idade" : 37,
        "email" : "gigi@email.com",
        "senha" : "segurança",
        "cpf" : "875243087-36",
        "disciplinas" : [
                {
                        "nome" : "física",
                        "nota1" : 7,
                        "nota2" : 3,
                        "mediaFinal" : 5,
                        "professor" : ObjectId("60565eaf82976271d1cbc9e2")
                },
                {
                        "nome" : "português",
                        "nota1" : 9,
                        "nota2" : 9.5,
                        "mediaFinal" : 9.25,
                        "professor" : ObjectId("60565eaf82976271d1cbc9e1")
                }
        ]
}

关于如何做到这一点的任何建议?欢迎举例。

谢谢你。

标签: mongodb

解决方案


推荐阅读