1.貼文有內容有回复,如果在mongodb裡只用1個表格的話,可以設計成這樣
{
title:'巴拉巴拉',
content:'巴拉巴拉',
comments:[
{
user:123,//用户123的回复
content:'123'
},
{
user:456,//用户456的回复
content:'456'
}
]
}
這樣的設計的話,如何修改 user:456 裡的content?
1)是否用类似数组下标的方式?如:comments[1].content?如何写?
过去多啦不再A梦2017-05-02 09:23:46
如果你已經知道了{user: 456}
的下標,可以用數組下標的方式改:
db.coll.update({...}, {$set: {"comments.1.content": "567"}})
或依查詢條件:
db.coll.update({"comments.user": 456}, {$set: {"comments.$.content": 567}})
其中$
代表匹配上的數組元素。但這種方式只會修改第一個符合陣列元素。所以要注意你的條件必須精確地匹配到你想改變的那個元素。以你的數據為例,如果這個用戶評論過2次,這樣寫就有問題了。