sort()(排序)

最后更新:2026-10-09

sort()(排序)

sort()按指定字段对游标结果排序,语法为`db.users.find().sort({ age: 1, name: -1 })`。值1表示升序、-1表示降序,多字段依次生效。排序通常在服务端执行,有索引支撑时性能最好;无索引的排序会在内存中完成,超过100MB内存限制会报错。

分类游标
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

db.<集合>.find(<条件>).sort(<排序键>)

⚙️ 参数

排序键字段到方向的映射,如{age: 1, name: -1}。

返回值:按排序键排序后的游标(可继续链式调用)。

▶ 示例

请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):

// sort:按年龄升序、姓名降序排序并取前3条
const result = db.users.find()
  .sort({ age: 1, name: -1 })
  .limit(3)
  .toArray()
result

运行结果:

[
  { _id: ObjectId('64c8a1b20000000000000001'), name: 'Alice', age: 21 },
  { _id: ObjectId('64c8a1b20000000000000002'), name: 'Bob', age: 25 }
]

📌 注意事项

📚 相关教程

❓ 常见问题

Qsort的1和-1分别代表什么?
A1表示升序(小到大),-1表示降序(大到小),例如{age: -1}按年龄从大到小排。
Qsort怎么按多个字段排序?
A排序键写多个字段即可,如{age: 1, name: -1},先按age再按name排。
Qsort性能不好怎么办?
A给排序字段建复合索引;无索引排序会占用内存,超大结果还可配合allowDiskUse()。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏