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

时间:2014-07-21 06:44:32

标签: performance mongodb

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

  

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

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

我想获得建议:

  • 上述结构对于所述元素量是否合理,以及是否存在 是性能明显的设计缺陷
  • 元素'someArrayAttribute'的最大数量可能包含
  • 比上面更好的结构是否可以使用mongodb的内置聚合

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

1 个答案:

答案 0 :(得分:1)

  那个' someArrayAttribute'以上可能需要持有数百万个元素,

不,不会工作。

文档受16MB空间的限制。只考虑到这一点,数以百万计的人不适合:

  

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

没有

  

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

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

  

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

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

我想,你可以在另一个收藏品甚至同一个收藏品的文件中放置someArrayAttribute块,但这听起来既乏味又不稳定。