recherche

Maison  >  Questions et réponses  >  le corps du texte

嵌套文档修改 - mongodb第三级嵌套数组修改问题

现在的数据结构是这样的

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) {


            });

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

怪我咯怪我咯2764 Il y a quelques jours871

répondre à tous(1)je répondrai

  • 大家讲道理

    大家讲道理2017-04-24 16:01:39

    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

    répondre
    0
  • Annulerrépondre