請教:mongodb帖子類表設計
天蓬老师
天蓬老师 2017-05-02 09:21:46
0
1
620

1.貼文有內容有回复,如果在mongodb裡只用1個表格的話,可以設計成這樣

{
    title:'巴拉巴拉',
    content:'巴拉巴拉',
    comments:[
        {
            user:123,//用户123的回复
            content:'123'
        },
        {
            user:456,//用户456的回复
            content:'456'
        }
    ]
}

這樣的設計的話,如何修改 user:456 裡的content?

1)是否用类似数组下标的方式?如:comments[1].content?如何写?
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(1)
过去多啦不再A梦

如果你已經知道了{user: 456}的下標,可以用數組下標的方式改:

db.coll.update({...}, {$set: {"comments.1.content": "567"}})

或依查詢條件:

db.coll.update({"comments.user": 456}, {$set: {"comments.$.content": 567}})

其中$代表匹配上的數組元素。但這種方式只會修改第一個符合陣列元素。所以要注意你的條件必須精確地匹配到你想改變的那個元素。以你的數據為例,如果這個用戶評論過2次,這樣寫就有問題了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板