[
{_id:001...arrs:[{name:'a',score:10},
{name:'b',score:11},
{name:'c',score:12},
{name:'d',score:13}
]
}
{_id:002...arrs:[{name:'a',score:11},
{name:'b',score:12},
{name:'c',score:13},
{name:'d',score:14}
]
}
...
]像上面的內(nèi)嵌數(shù)組的文檔,每個arrs長度都在20一下,但是需要比較頻繁去更新arrs內(nèi)部子文檔的name,score.是否有必要去把a(bǔ)rrs內(nèi)部子文檔拆分出來單獨(dú)放一張collection.這是在其他地方搜索到的建議:操作的最小單元最好是 Document,而不是 SubDocument,如果你經(jīng)常有對 SubDocument 進(jìn)行操作的需求,請把它拆出來放到另外一個 Collection 里,在原 Collection 的數(shù)據(jù)結(jié)構(gòu)里 Refrence 這些拆出來的 Document。我在官網(wǎng)文檔還沒有找到這個建議,請問是否應(yīng)該拆分出來?
1 回答

白板的微信
TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個贊
沒有絕對的標(biāo)準(zhǔn),怎么做需要權(quán)衡你的實(shí)際情況。這也是MongoDB數(shù)據(jù)模型設(shè)計的難點(diǎn),因?yàn)椴幌馬DBMS有范式這個標(biāo)準(zhǔn),MongoDB的模型設(shè)計是根據(jù)你的需求來的,權(quán)衡各種使用場景下的利弊,然后選擇一個收益最好的模型。所以在沒有任何背景的前提下就說哪種更好是不合理的(所以在官網(wǎng)不可能找到這樣的建議)。
首先當(dāng)初選擇把這些東西放在一個數(shù)組里的原因是什么?如果這些數(shù)據(jù)沒有任何聯(lián)系,那放在一起就是完全沒有必要的。
- 1 回答
- 0 關(guān)注
- 663 瀏覽
添加回答
舉報
0/150
提交
取消