为啥聚合+排序比mongo中的查找+排序更快?
Posted
技术标签:
【中文标题】为啥聚合+排序比mongo中的查找+排序更快?【英文标题】:Why aggregate+sort is faster than find+sort in mongo?为什么聚合+排序比mongo中的查找+排序更快? 【发布时间】:2015-09-18 06:50:51 【问题描述】:我在我的项目中使用猫鼬。当我的集合中的文档数量变大时,find+sort 的方法会变慢。所以我改用 aggregate+$sort 。我只是想知道为什么?
【问题讨论】:
find
将在内部进行迭代,然后 sort
因此,它需要更多的时间然后 aggregate+sort
。
【参考方案1】:
在没有看到您的数据和查询的情况下,很难回答为什么聚合+排序比查找+排序更快。
但以下是在查找和聚合时适用的内容
索引良好(适合您的查询的索引)数据总是会在您的查找查询中产生更快的结果。 您在聚合查询中使用的聚合管道组件,更多的操作与更多的执行时间成正比。 当您使用聚合管道时,您可以创建 sum、avg 等新字段,这在查找中是不可能的。查看这个帖子了解更多信息
MongoDB aggregation $match vs find speed
【讨论】:
以上是关于为啥聚合+排序比mongo中的查找+排序更快?的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB,如何将查找和排序与聚合中的 $cond 结合起来?
为啥数字数组,更多数据排序比对象数组更快,Javascript中的数据更少?