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

FFIVE
TA貢獻1797條經(jīng)驗 獲得超6個贊
你這樣設(shè)計{user: 456}的回復(fù)呢?你怎么辦?{user: 456}的回復(fù)的回復(fù)呢?你又該怎么辦?

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