MongoDB關系:嵌入還是引用?我是MongoDB的新手 - 來自關系數據庫背景。我想設計一個帶有一些注釋的問題結構,但我不知道用于評論的關系:embed或者reference?有一些注釋的問題,比如stackoverflow,會有這樣的結構:Question
title = 'aaa'
content = bbb'
comments = ???首先,我想使用嵌入式注釋(我認為embed在MongoDB中推薦),如下所示:Question
title = 'aaa'
content = 'bbb'
comments = [ { content = 'xxx', createdAt = 'yyy'},
{ content = 'xxx', createdAt = 'yyy'},
{ content = 'xxx', createdAt = 'yyy'} ]很清楚,但我擔心這種情況:如果我想編輯指定的評論,我該如何獲取其內容及其問題?沒有_id讓我找到一個,也沒有question_ref讓我找到它的問題。(我是新手,我不知道如果沒有_id和沒有任何方法可以做到這一點question_ref。)我必須用ref不embed?然后我必須創建一個新的評論集合?
4 回答

千巷貓影
TA貢獻1829條經驗 獲得超7個贊
如果我想編輯指定的評論,如何獲取其內容及其問題?
您可以按子文檔查詢:db.question.find({'comments.content' : 'xxx'})
。
這將返回整個問題文件。要編輯指定的注釋,您必須在客戶端上找到注釋,進行編輯并將其保存回數據庫。
通常,如果您的文檔包含一個對象數組,您將發現這些子對象需要在客戶端進行修改。

幕布斯6054654
TA貢獻1876條經驗 獲得超7個贊
好吧,我有點遲了但仍想分享我的架構創建方式。
我有一些可用一個詞描述的模式,就像你在經典的OOP中所做的那樣。
例如
評論
帳戶
用戶
博文
...
每個模式都可以保存為Document或Subdocument,因此我為每個模式聲明了這一點。
文獻:
可以作為參考。(例如,用戶發表了評論 - >評論對用戶有“制作者”的引用)
在您的應用程序中是“根”。(例如博客帖子 - >有關于博客帖子的頁面)
子文檔:
只能使用一次/永遠不是參考。(例如評論保存在博文中)
在您的應用程序中永遠不是“根”。(評論只顯示在博客頁面中,但頁面仍然是關于博客帖子)
- 4 回答
- 0 關注
- 1386 瀏覽
添加回答
舉報
0/150
提交
取消