一個questions表,存所有的問題,每一個question有一個answers的key,是個數組對象,每個answer有自己_id和一個up屬性,現在想透過這個_id來更新up屬性。 請問前輩們如何做?試了很多都沒辦法正確更新,謝謝qaq
认证0级讲师
db.questions.update({ "answers._id": ObjectId("58f575ca09c601c45f6c281a") }, { $set: { "answers.$.up": 1 } });
注意$運算符,我們叫它Positional Operator,更多內容請看連結。
$
我覺得你不應該把資料表嵌套這麼深,一般建一個關係表我覺得比較合理
可以的假設你知道要修改的answer在這個answers數組中的索引你可以用question.answers.index.up來更新,現在不知道這個索引,你可以用$來佔位,Filter用{answers._id :123456} update用{answers.$.up:321}
注意
$
運算符,我們叫它Positional Operator,更多內容請看連結。我覺得你不應該把資料表嵌套這麼深,一般建一個關係表我覺得比較合理
可以的假設你知道要修改的answer在這個answers數組中的索引你可以用question.answers.index.up來更新,現在不知道這個索引,你可以用$來佔位,Filter用{answers._id :123456} update用{answers.$.up:321}