首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游标.sort()和聚合$sort的区别

游标.sort()和聚合$sort的区别
EN

Stack Overflow用户
提问于 2018-09-17 15:44:05
回答 2查看 406关注 0票数 1

我是mongodb的新手,无法理解find查询中的.sort()和聚合框架中的$sort之间的区别。

代码语言:javascript
复制
db.collection.find({}).limit(1).sort({ createdAt: 1 })

代码语言:javascript
复制
db.collection.aggregation([
  { $sort: { createdAt: 1 }},
  { $limit: 1 }
])
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-17 16:51:15

对于findsortlimit游标方法的顺序无关紧要。排序总是在限制之前进行(请参阅文档中的“组合游标方法” )。

对于aggregate$sort$limit阶段的顺序是有意义的,并确定哪个操作首先发生。

票数 2
EN

Stack Overflow用户

发布于 2018-09-17 16:03:05

聚合框架往往非常复杂。我建议任何试图掌握它的人首先画出他们头中的输出(或者如果SQL查询工作得更好的话)。

也就是说,这只是性能的区别:为了解释,让我们假设它们是10而不是1。如果你读了第一个查询,

代码语言:javascript
复制
db.collection.find({}).limit(10).sort({ createdAt: 1 })

将过滤10项并对它们进行排序。第二个步骤将对集合中的所有*项进行排序,然后将它们筛选为10:

代码语言:javascript
复制
 db.collection.aggregation([
   { $sort: { createdAt: 1 }},
   { $limit: 10 }
 ])

你可以从mongouniversity.com看一下这门课。希望它能帮助你理解:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52371455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档