[
{_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}
]
}
...
]像上面的内嵌数组的文档,每个arrs长度都在20一下,但是需要比较频繁去更新arrs内部子文档的name,score.是否有必要去把arrs内部子文档拆分出来单独放一张collection.这是在其他地方搜索到的建议:操作的最小单元最好是 Document,而不是 SubDocument,如果你经常有对 SubDocument 进行操作的需求,请把它拆出来放到另外一个 Collection 里,在原 Collection 的数据结构里 Refrence 这些拆出来的 Document。我在官网文档还没有找到这个建议,请问是否应该拆分出来?
1 回答
白板的微信
TA贡献1883条经验 获得超3个赞
没有绝对的标准,怎么做需要权衡你的实际情况。这也是MongoDB数据模型设计的难点,因为不像RDBMS有范式这个标准,MongoDB的模型设计是根据你的需求来的,权衡各种使用场景下的利弊,然后选择一个收益最好的模型。所以在没有任何背景的前提下就说哪种更好是不合理的(所以在官网不可能找到这样的建议)。
首先当初选择把这些东西放在一个数组里的原因是什么?如果这些数据没有任何联系,那放在一起就是完全没有必要的。
- 1 回答
- 0 关注
- 639 浏览
添加回答
举报
0/150
提交
取消