参考 > 参考 > mongo Shell方法 > 游标方法 > cursor.sort()
cursor.
sort
(排序)¶mongo
壳法
此页面记录了mongo
shell方法,并且
没有引用MongoDB Node.js驱动程序(或任何其他驱动程序)方法。对于相应的MongoDB驱动程序API,请改为参考您特定的
MongoDB驱动程序文档。
指定查询返回匹配文档的顺序。您必须先申请sort()
游标,然后才能从数据库中检索任何文档。
该sort()
方法具有以下参数:
参数 | 类型 | 描述 |
---|---|---|
sort |
文献 | 定义结果集排序顺序的文档。 |
该sort
参数包含字段和值对,格式如下:
排序文件可以指定升序或在现有领域降序排序或排序上计算的元数据。
在sort参数中指定要作为排序依据的一个或多个字段,以及的值1
或-1
分别指定升序或降序排序。
下面的示例文档按age
字段指定降序排列,然后按字段指定
升序排列posts
:
比较不同BSON类型的值时,MongoDB使用以下比较顺序,从最低到最高:
有关特定类型的比较/排序顺序的详细信息,请参阅 比较/排序顺序。
在sort参数中为计算的元数据指定新的字段名称,并将$meta
表达式指定为其值。
以下样本文档按"textScore"
元数据指定降序排列
:
指定的元数据确定排序顺序。例如,
"textScore"
元数据按降序排序。有关$meta
详细信息,请参见
。
当无法从索引获取排序顺序时,MongoDB将对内存中的结果进行排序,这要求所排序的结果集小于32 MB。
当排序操作消耗的内存超过32 MB时,MongoDB返回错误。为避免此错误,请创建支持排序操作的索引(请参阅“ 排序和索引使用”)或
sort()
与结合使用limit()
(请参阅“ 限制结果”)。
有时可以通过按顺序扫描索引来满足排序要求。如果查询计划使用索引来提供请求的排序顺序,则MongoDB不会对结果集执行内存中排序。有关更多信息,请参见使用索引对查询结果进行排序。
集合orders
包含以下文档:
以下查询返回orders
集合中的所有文档,但未指定排序顺序:
该查询以不确定的顺序返回文档:
以下查询在amount
字段上按降序指定排序。
该查询以降序返回以下文档
amount
:
以下查询使用嵌入式文档中的字段指定排序顺序item
。查询排序首先由category
场按升序顺序,然后在每个category
由type
以升序字段。
该查询返回以下文档,这些文档首先按该category
字段排序,并且在每个类别内按该字段排序
type
: