MongoDB不鼓励简单查询

时间:2016-10-21 07:34:42

标签: mongodb performance aggregation-framework

我们正在为一些价格数据运行MongoDB实例,我想查找数据库中每个产品的最新价格更新。

来自SQL背景我最初的想法是用子查询创建查询,其中子查询是按查询分组。在子查询中,价格更新按产品分组,然后可以找到每次价格更新的最新更新。

我和一位同事谈过这种方法,他声称在MongoDB的官方培训材料中,人们应该更喜欢简单查询而不是聚合查询。即,他将对每个产品运行查询,然后通过更新日期对它们进行排序来查找最新的价格更新。因此,与产品数量相比,查询数量将是线性的。

我确实同意编写这样一个查询而不是聚合查询更简单,但我认为性能明智,通过集合一次并查找查询(即查询数量)会更快与产品数量相比将保持不变。

他还声称mongodb在群集中运行时运行简单查询时也能够更好地进行优化。

有人知道是不是这样吗?

我试图在互联网上搜索,我找不到这样的说法,即人们应该更喜欢简单查询而不是聚合查询。

我的另一位同事也认为可能是因为MongoDB是一项新技术,因此聚合查询可能尚未针对集群MongoDB实例进行优化。

有谁可以解释这些问题?

提前致谢

1 个答案:

答案 0 :(得分:0)

以下是有关分片MongoDb实现的聚合管道的一些信息

Aggregation Pipeline and Sharded Collections

假设您的集合中有正确的索引,那么使用MongoDB聚合不会有任何问题。