Appearance
MongoDB 固定集合
什么是固定集合?
固定集合(Capped Collection) 是一种大小或文档数固定的集合,写入新数据时会覆盖最旧的数据,类似循环缓冲区。不支持删除单条文档,也不能修改文档导致尺寸变化(可做等长更新)。
创建固定集合
javascript
db.createCollection("logs", {
capped: true,
size: 1048576, // 1MB,必选
max: 1000 // 最多文档数(可选)
})- size:集合占用的最大字节数,必填。
- max:最多保留的文档数(与 size 同时存在时,先触发的先淘汰)。
特性与限制
- 插入顺序即存储顺序,自然按插入时间排序,适合日志、最近 N 条记录。
- 无需建索引即可按插入顺序遍历,性能较好。
- 不能删除文档、不能执行会改变文档大小的 update(可做等长
$set)。 - 不能从固定集合中删除或 drop 索引(除 _id 外通常也不建额外索引)。
转换
普通集合不能转换为固定集合;固定集合也不能改为普通集合,只能新建集合并迁移数据。
适用场景
- 最近 N 条日志、消息流、审计 trail 等“只保留最新”的数据。
至此,MongoDB 教程 基础与高级部分的主要章节已介绍完毕。