为啥聚合+排序比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中的数据更少?

mongodb Aggregation聚合操作之$sort

为啥插入排序比快速排序和冒泡排序更快?

为啥我的线性搜索比我在 Python3 中的二分搜索运行得更快?

为啥处理排序数组比处理未排序数组更快?