我正在设计一个mongodb文档的结构,它包含一个对象数组作为其中一个属性:
{ _id:xxx, someObjectAttribute:{...}, someArrayAttribute:[{timeStamp:yyy,value:zzz},...] }
设想上面的'someArrayAttribute'可能需要保存数百万个元素,每个元素具有相同的{timeStamp,value}结构,并且将在其上进行聚合和过滤(例如,一段时间内的值的总和)
我想获得建议:
在此先感谢,我很乐意澄清任何事情。
答案 0 :(得分:1)
那个' someArrayAttribute'以上可能需要持有数百万个元素,
不,不会工作。
文档受16MB空间的限制。只考虑到这一点,数以百万计的人不适合:
上述结构是否适用于所述元素量,以及是否存在明显的设计性能缺陷
没有
元素的最大数量' someArrayAttribute'可能包含
更不用说,更像12,000只有非常小的对象,但即便如此,除非你将它拆分成文档中的块,否则你会在这么大的数组上遇到性能问题。
比上面更好的结构是否可以使用mongodb的内置聚合
您可以拥有的唯一真实结构是一个集合中的父文档,someArrayAttribute
分成一个单独的集合。
我想,你可以在另一个收藏品甚至同一个收藏品的文件中放置someArrayAttribute
块,但这听起来既乏味又不稳定。