On this page
$orderby
在本页面
$orderby
Note
从 v3.2 开始在
mongo
Shell 中弃用从 v3.2 开始,$orderby运算符在mongo shell 中已弃用。在mongoShell 中,改用cursor.sort()。
$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 兆字节限制内。