一個questions表,存所有的問題,每一個question有一個answers的key,是個數組對象,每個answer有自己_id和一個up屬性,現在想透過這個_id來更新up屬性。
請問前輩們如何做?試了很多都沒辦法正確更新,謝謝qaq
怪我咯2017-05-02 09:28:29
db.questions.update({
"answers._id": ObjectId("58f575ca09c601c45f6c281a")
}, {
$set: {
"answers.$.up": 1
}
});
注意$
運算符,我們叫它Positional Operator,更多內容請看連結。
过去多啦不再A梦2017-05-02 09:28:29
可以的假設你知道要修改的answer在這個answers數組中的索引你可以用question.answers.index.up來更新,現在不知道這個索引,你可以用$來佔位,Filter用{answers._id :123456} update用{answers.$.up:321}