mongodb的Subdocuments更新疑问?
[
{
_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。
我在官网文档还没有找到这个建议,请问是否应该拆分出来?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有绝对的标准,怎么做需要权衡你的实际情况。这也是MongoDB数据模型设计的难点,因为不像RDBMS有范式这个标准,MongoDB的模型设计是根据你的需求来的,权衡各种使用场景下的利弊,然后选择一个收益最好的模型。所以在没有任何背景的前提下就说哪种更好是不合理的(所以在官网不可能找到这样的建议)。
首先当初选择把这些东西放在一个数组里的原因是什么?如果这些数据没有任何联系,那放在一起就是完全没有必要的。