我们正在为一些价格数据运行MongoDB实例,我想查找数据库中每个产品的最新价格更新。
来自SQL背景我最初的想法是用子查询创建查询,其中子查询是按查询分组。在子查询中,价格更新按产品分组,然后可以找到每次价格更新的最新更新。
我和一位同事谈过这种方法,他声称在MongoDB的官方培训材料中,人们应该更喜欢简单查询而不是聚合查询。即,他将对每个产品运行查询,然后通过更新日期对它们进行排序来查找最新的价格更新。因此,与产品数量相比,查询数量将是线性的。
我确实同意编写这样一个查询而不是聚合查询更简单,但我认为性能明智,通过集合一次并查找查询(即查询数量)会更快与产品数量相比将保持不变。
他还声称mongodb在群集中运行时运行简单查询时也能够更好地进行优化。
有人知道是不是这样吗?
我试图在互联网上搜索,我找不到这样的说法,即人们应该更喜欢简单查询而不是聚合查询。
我的另一位同事也认为可能是因为MongoDB是一项新技术,因此聚合查询可能尚未针对集群MongoDB实例进行优化。
有谁可以解释这些问题?
提前致谢
答案 0 :(得分:0)
以下是有关分片MongoDb实现的聚合管道的一些信息
Aggregation Pipeline and Sharded Collections
假设您的集合中有正确的索引,那么使用MongoDB聚合不会有任何问题。