嵌套文档修改 - mongodb第三级嵌套数组修改问题
怪我咯
怪我咯 2017-04-24 15:59:39
0
1
879

现在的数据结构是这样的

course:{
    name:String,
    chapter: [{ 
            name: String,
            knowledge: [{ 
                name: String,
                exam: [{ 
                    name: String, 
                }]
            }]
        }]
}

要想修改knowledge.name,修改语句该怎么写?之前在修改chapter.name时我是这样写的

Course.update({
                "chapter._id": req.body.id
            }, {
                $set: {
                    "chapter.$.name": name, //名称
                }
            })
            .exec(function(err, num) {


            });

不知道在修改第三级嵌套文档时,$定位符改怎么使用。

怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous(1)
大家讲道理

En fait, c'est compliqué Requêtes imbriquées, modifications imbriquées, etc. Si vous trouvez des nœuds couche par couche, l'efficacité n'est pas très élevée.
Les bases de données de documents, pour parler franchement, sont toujours une chaîne de chaînes dans un format de type JSON, quelle que soit la profondeur de l'imbrication.
Le moyen le plus rapide et le plus direct est le suivant :

jsondb.term.update({"_id" : ObjectId("54c1a899eb21ac9c995d3eb2")}, {$set:{
    "_id" : ObjectId("54c1a899eb21ac9c995d3eb2"),
    "course" : {
        "name" : "String",
        "chapter" : [ 
            {
                "name" : "String",
                "knowledge" : [ 
                    {
                        "name" : "原来如此",
                        "exam" : [ 
                            {
                                "name" : "String"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}})

Assurez-vous simplement que votre programme reste inchangé. Recherchez d'abord les résultats, modifiez uniquement le nom de la connaissance, puis mettez à jour.
Lorsqu'une opération de base de données semble délicate, gênante et inefficace, vous devez regarder en arrière et réfléchir à la possibilité d'améliorer la conception structurelle de la base de données. Cela s'applique à la fois aux bases de données relationnelles et non relationnelles. http://www.cnblogs.com/mokafamily/p/4102829.html, vous pouvez consulter la section "1. Normalisation et dénormalisation" dans cet article

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal