$natural(物理存储顺序)
最后更新:2026-10-09
$natural(物理存储顺序)
$natural 按集合的物理存储顺序返回文档。`{ $natural: 1 }` 正序(近似插入顺序),`{ $natural: -1 }` 逆序。对固定大小集合(capped collection)特别有用,也常用于诊断调试。注意:$natural 与索引查询不能同时使用,因为它本身就表示不使用索引的扫描顺序。
| 分类 | 投影 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $natural: <1 或 -1> }
⚙️ 参数
| 方向 | 1 为正序,-1 为逆序。 |
|---|
返回值:按物理存储顺序排列的文档
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $natural:按插入顺序返回日志
// 固定大小集合中顺序即写入顺序
db.logs.find().sort({ $natural: -1 })
// 取正序前 10 条
db.logs.find().sort({ $natural: 1 }).limit(10)
运行结果:
// 返回日志文档,逆序(最新在前);第二个示例取正序前 10 条
📌 注意事项
- 顺序不保证长期稳定,压缩或迁移后会变化
- 对固定大小集合可替代 _id 排序
- 与索引查询互斥
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q$natural 是什么顺序?
A集合文件的物理存储顺序,通常近似插入顺序,但不保证稳定。
Q$natural 能走索引吗?
A不能,$natural 本身就是无索引的自然扫描。
Q什么时候用 $natural?
A固定大小集合的日志场景、调试排查时。