搜尋

首頁  >  問答  >  主體

node.js - mongo更新巢狀結構中的內容

一個questions表,存所有的問題,每一個question有一個answers的key,是個數組對象,每個answer有自己_id和一個up屬性,現在想透過這個_id來更新up屬性。
請問前輩們如何做?試了很多都沒辦法正確更新,謝謝qaq

PHP中文网PHP中文网2754 天前585

全部回覆(3)我來回復

  • 怪我咯

    怪我咯2017-05-02 09:28:29

    db.questions.update({
        "answers._id": ObjectId("58f575ca09c601c45f6c281a")
    }, {
        $set: {
            "answers.$.up": 1
        }
    });
    

    注意$運算符,我們叫它Positional Operator,更多內容請看連結。

    回覆
    0
  • 滿天的星座

    滿天的星座2017-05-02 09:28:29

    我覺得你不應該把資料表嵌套這麼深,一般建一個關係表我覺得比較合理

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-02 09:28:29

    可以的假設你知道要修改的answer在這個answers數組中的索引你可以用question.answers.index.up來更新,現在不知道這個索引,你可以用$來佔位,Filter用{answers._id :123456} update用{answers.$.up:321}

    回覆
    0
  • 取消回覆