【问题标题】:Model a large MongoDB collection that rarely updates为很少更新的大型 MongoDB 集合建模
【发布时间】:2020-04-14 00:33:34
【问题描述】:

上下文:

我目前正在建模的数据遵循由 4 层组成的深层树模式(类别、子类别、子子类别、子子子类别……这两个最后当然不是我将使用的真实单词) 随着时间的推移,这个集合会变得越来越大,每一层都将包含几十个元素的列表。

问题:

像这样建模一个完整的嵌入式集合会引发一个大问题; MongoDB 的 16MB 文档限制在这种情况下并不理想,因为文档大小会慢慢接近限制。

但与此同时,这些数据并不意味着经常更新(最多一天几次)。在客户端,API 需要返回一个完整构建的大 JSON 文件,该文件由嵌套在一起的所有这些层组成。它可以很容易地以这样一种方式进行,即每次更新层时,完整的 JSON 结果也会更新并存储在 RAM 中,准备发送。

我想知道在不同的集合中拆分这样的 4 层树是否是一个更好的主意,因为同时它会引发更多查询,但它会更具可扩展性和易于理解。但我真的不知道这是否是对 MongoDB 文档进行建模的方式。我可能做错了什么(第一次使用 MongoDB),我想确保一切都已经以这种方式做事

【问题讨论】:

    标签: mongodb database-design


    【解决方案1】:

    我建议你看看官方的MongoDB tree structures 建议,尤其是有家长参考的解决方案。它将允许您保持您的结构而无需为 16MB 的最大大小而苦苦挣扎,并且您可以使用 $graphLookup 聚合阶段对树子文档执行进一步的查询

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-23
      • 2018-03-17
      • 1970-01-01
      • 1970-01-01
      • 2012-01-21
      • 2016-01-06
      • 1970-01-01
      • 2015-11-13
      相关资源
      最近更新 更多