Skip to content

MongoDB 排序

sort 方法

sort 接收一个对象:键为字段名,值为 1(升序)或 -1(降序):

javascript
db.users.find().sort({ age: 1 })           // 按 age 升序
db.users.find().sort({ age: -1 })          // 按 age 降序
db.users.find().sort({ createdAt: -1 })    // 按创建时间倒序(最新在前)

多字段排序

先按第一个字段排,相同再按第二个字段:

javascript
db.users.find().sort({ status: 1, age: -1 })

即:先按 status 升序,再按 age 降序。

与 limit 结合

取“年龄最大的 5 个用户”:

javascript
db.users.find().sort({ age: -1 }).limit(5)

注意

  • 排序会占用内存,若无法使用索引则可能使用内存排序,单次排序有 32MB 内存限制。
  • 为常用排序字段建索引可显著提升性能。见 MongoDB 索引