如何避免特定查询中的MongoDB聚合?

时间:2017-04-15 10:00:26

标签: mongodb olap

我正在使用MongoDB并需要一些分析查询来生成一些我的数据报告。我知道MongoDB不是OLAP应用程序的好选择,但如果我想使用MonogoDB,一个解决方案就是预先计算所需的数据。例如,我们可以为任何特定的OLAP查询创建新集合,并在系统中发生某些相关事件时更新该集合。请考虑以下情况:

在我的应用中,我正在sales集合中存储某些供应商销售信息。销售中的每个文档都包含销售价值,供应商ID和日期。我想报告说,在指定的时间段内找到那些销售量最大的供应商。为了避免聚合,我创建了一个中间集合,用于存储每天每个供应商的全部销售额。然后,当我想准备该报告时,我只是在中间集合中找到他们的日期在指定时间段内的那些文档,然后按照供应商ID对结果进行分组,然后对其进行排序。我认为这个解决方案会缩短聚合时间,因为中间集合中的文档少于原始集合。它也是 O(n)时间复杂度。

我想知道MongoDB中是否有任何机制可以避免这种聚合并使查询更简单?

0 个答案:

没有答案