Mongodb聚合大集合

所以我有一个大集合存储消息,我想从这个集合产生时间序列数据。

现在,我有时间序列数据问题之前,当我有1000万条logging按时间间隔分组和计数/平均值。

Timestamp => values

我通过把所有的数据都放到一个集合中来解决这个问题,所以现在我只有更less的文档,更大的文档。 这有助于减less分贝需要查找相关文档的查找和search时间。 然而,我不知道我怎么能加快我的查询文件,而不是时间序列。 另外我想在这个大文件中search文本,所以我必须寻求所有文件没有exepction。

正如我所说我将邮件存储在单个文档中,模式如下所示:

 Id: string Author: string MessageType: string, Group: string, Message: string Votes: number Date: date 

我想要统计消息中包含单词的所有logging或包含作者Joe的所有logging。 或者总结票等。 所以我最终会得到可以放在图表上的时间序列数据。

现在,如果我必须经历一年约5000万条logging的数据。 查询是gona永远采取,因为它必须获取这么多的logging,并筛选出我感兴趣的。

我怎么能取得更好的performance?

我只在date和作者字段设置索引。 然而,我的查询很慢,数据库超级忙处理一个查询。

我应该预先汇总我的数据,什么是一个好方法? 或者在后台工作人员中生成时间序列数据?

有人可以指导我正确的方式,所以我可以实现一个适当的解决scheme,可以减less数据库的负载,或增加查询性能?

处理这样一个包含消息的大集合的最佳实践是什么?

我怎么能细分这种数据?

在多台机器之间build立一个副本集并分割数据库会是一个好主意吗?

任何帮助和投入将被appriciated。