首页 文章

mongodb文档结构 - 需要限制和性能建议

提问于
浏览
0

我正在设计一个mongodb文档的结构,其中包含一个对象数组作为其中一个属性:

{_ id:xxx,someObjectAttribute:,someArrayAttribute:[{timeStamp:yyy,value:zzz},...]}

设想上面的'someArrayAttribute'可能需要保持数百万个元素,每个元素具有相同的{timeStamp,value}结构,并且将在其上进行聚合和过滤(例如,在一段时间内的值的总和) .

我想得到以下建议:

  • 上述结构是否适用于所述元素量,以及是否存在明显的设计性能缺陷

  • 可能包含的最大元素数'someArrayAttribute'

  • 一个比上面更好的结构是否可以使用mongodb的内置聚合

在此先感谢,我很乐意澄清任何事情 .

1 回答

  • 1

    上面的'someArrayAttribute'可能需要容纳数百万个元素,

    不,不行 .

    文档限制为16MB的空间 . 只考虑以下因素,数百万不符合这一点:

    上述结构是否适用于所述元件体积,以及是否存在明显的设计性能缺陷

    没有

    'someArrayAttribute'可能包含的元素的最大数量

    更不用说,更像是拥有非常小的对象的12,000,但即便如此,除非你将它分成文档中的块,否则你会遇到在这么大的数组上工作的性能问题 .

    比上面更好的结构是否可以利用mongodb的内置聚合

    您可以拥有的唯一真实结构是一个集合中的父文档,而 someArrayAttribute 分成一个单独的集合 .

    我想,你可以在另一个集合或甚至同一个集合中的文档中放置 someArrayAttribute 的块,但这听起来乏味且不稳定 .

相关问题