mongodb的Subdocuments更新疑问?

发布于 2022-09-11 14:50:33 字数 585 浏览 7 评论 0

[
{
_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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

生死何惧 2022-09-18 14:50:33

没有绝对的标准,怎么做需要权衡你的实际情况。这也是MongoDB数据模型设计的难点,因为不像RDBMS有范式这个标准,MongoDB的模型设计是根据你的需求来的,权衡各种使用场景下的利弊,然后选择一个收益最好的模型。所以在没有任何背景的前提下就说哪种更好是不合理的(所以在官网不可能找到这样的建议)。
首先当初选择把这些东西放在一个数组里的原因是什么?如果这些数据没有任何联系,那放在一起就是完全没有必要的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文