検索

ホームページ  >  に質問  >  本文

嵌套文档修改 - 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日前870

全員に返信(1)返信します

  • 大家讲道理

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

    実際には、ネストされたクエリやネストされた変更などを考えるのは複雑です。レイヤーごとにノードを見つける場合、効率はあまり高くありません。
    率直に言えば、ドキュメント データベースは、ネストがどれほど深くても、常に json のような形式の文字列です。
    最も速くて直接的な方法は次のとおりです:

    リーリー

    プログラムが変更されていないことを確認してください。まず結果を検索し、ナレッジの名前のみを変更してから更新します。
    データベース操作がぎこちなく、面倒で、非効率であると感じた場合は、データベースの構造設計を改善できるかどうかを振り返って、これがリレーショナル データベースと非リレーショナル データベースの両方に当てはまるかどうかを検討する必要があります。 http://www.cnblogs.com/mokafamily/p/4102829.html、この記事の「1. 正規化と非正規化」セクションをご覧ください

    返事
    0
  • キャンセル返事