1.帖子有內容有回復,如果在mongodb里只用1個表的話,可以設計成這樣{ title:'巴拉巴拉', content:'巴拉巴拉', comments:[ { user:123,//用戶123的回復 content:'123' }, { user:456,//用戶456的回復 content:'456' } ]}這樣的設計的話,如何修改 user:456 里的content?1)是否用類似數組下標的方式?如:comments[1].content?如何寫?
2 回答

江戶川亂折騰
TA貢獻1851條經驗 獲得超5個贊
如果你已經知道了{user: 456}
的下標,可以用數組下標的方式改:
db.coll.update({...}, {$set: {"comments.1.content": "567"}})
或者根據查詢條件:
db.coll.update({"comments.user": 456}, {$set: {"comments.$.content": 567}})
其中$
代表匹配上的數組元素。但這種方式只會修改第一個匹配數組元素。所以要注意你的條件必須要精確匹配到你想改的那個元素。以你的數據為例,如果這個用戶評論過2次,這樣寫就有問題了。
- 2 回答
- 0 關注
- 908 瀏覽
添加回答
舉報
0/150
提交
取消