$orderby

在本页面

$orderby

Note

$orderby运算符按升序或降序对查询结果进行排序。

mongo shell 提供cursor.sort()方法:

db.collection.find().sort( { age: -1 } )

您还可以采用以下两种形式之一指定选项:

db.collection.find()._addSpecial( "$orderby", { age : -1 } )
db.collection.find( { $query: {}, $orderby: { age : -1 } } )

这些示例返回名称为collection的集合中的所有文档,这些文档按age字段降序排列。为$orderby指定一个负数(例如-1,如上所述)以降序排序,或为一个正值(例如1)以升序排序。

Behavior

排序功能要求整个排序必须在 32 兆字节内完成。当 sort 选项消耗的内存超过 32 MB 时,MongoDB 将返回错误。

为避免此错误,请创建索引以支持排序操作,或者将$orderby$maxScan和/或cursor.limit()结合使用。 cursor.limit()通过优化算法提高了速度并减少了返回此查询所需的内存量。指定的限制必须导致许多文档都在 32 兆字节限制内。