2015-03-02 144 views
1

这是关于mongodb的建议。我有一个collection,总是逐行增加(我指的是文件的数量)。现在大约有50亿。当我在这个collection上提出请求时,我有时会得到大约16 MB大小的错误。MongoDB中聚合管道的16 MB大小

我想问的第一件事是哪个结构是创建collections的最佳方式,它可以极大地增加行数。什么是最好的方法?我应该为这种结构和表现做些什么?

回答

1

只是为了澄清,16MB的限制是在文件,而不是集合。具体而言,其最大BSON文档大小,如文档中的this page中所述。

最大BSON文档大小是16兆字节。

如果您遇到16MB的聚合限制,那是因为您使用的是MongoDB 2.4或更高版本。在这些文件中,aggregate()方法返回了一个文档,它与所有其他文档的限制相同。从2.6开始,aggregate()方法返回一个游标,该游标不受16MB限制。有关更多信息,请参阅文档中的this page。请注意,聚合管道中的每个阶段仍然限制为100MB的RAM。

+0

我使用2.6版本。我仍然得到大小错误。例如**组**操作仍然受到限制。 – AknKplnoglu 2015-03-03 08:36:58

+0

为什么你编辑这个问题?这不是英语grammaire比赛,是吗? @Juan Carlos Farah – AknKplnoglu 2015-03-03 08:55:21

+0

如果可能的话,您是否可以显示您正在获取的确切错误以及您正在运行的聚合查询以及示例文档? – 2015-03-03 10:02:55