- MongoDB 教程
- MongoDB - 主页
- MongoDB - 概述
- MongoDB - 优点
- MongoDB - 环境
- MongoDB - 数据建模
- MongoDB - 创建数据库
- MongoDB - 删除数据库
- MongoDB - 创建集合
- MongoDB - 删除集合
- MongoDB - 数据类型
- MongoDB - 插入文档
- MongoDB - 查询文档
- MongoDB - 更新文档
- MongoDB - 删除文档
- MongoDB - 投影
- MongoDB - 限制记录
- MongoDB - 记录排序
- MongoDB - 索引
- MongoDB - 聚合
- MongoDB - 复制
- MongoDB - 分片
- MongoDB - 创建备份
- MongoDB - 部署
- MongoDB-Java
- MongoDB-PHP
- 高级 MongoDB
- MongoDB - 关系
- MongoDB - 数据库参考
- MongoDB - 涵盖查询
- MongoDB - 分析查询
- MongoDB - 原子操作
- MongoDB - 高级索引
- MongoDB - 索引限制
- MongoDB - 对象 ID
- MongoDB - 映射减少
- MongoDB - 文本搜索
- MongoDB - 正则表达式
- 与 Rockmongo 合作
- MongoDB-GridFS
- MongoDB - 上限集合
- 自动递增序列
- MongoDB 有用资源
- MongoDB - 问题与解答
- MongoDB - 快速指南
- MongoDB - 有用的资源
- MongoDB - 讨论
MongoDB - 上限集合
上限集合是固定大小的循环集合,遵循插入顺序以支持创建、读取和删除操作的高性能。通过循环,这意味着当分配给集合的固定大小耗尽时,它将开始删除集合中最旧的文档,而无需提供任何显式命令。
如果更新导致文档大小增加,则上限集合会限制对文档的更新。由于上限集合按照磁盘存储的顺序存储文档,因此可以确保文档大小不会增加磁盘上分配的大小。上限集合最适合存储日志信息、缓存数据或任何其他大容量数据。
创建上限集合
要创建上限集合,我们使用普通的 createCollection 命令,但将上限选项设置为true并指定集合的最大大小(以字节为单位)。
>db.createCollection("cappedLogCollection",{capped:true,size:10000})
除了集合大小之外,我们还可以使用max参数限制集合中的文档数量-
>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})
如果要检查集合是否有上限,请使用以下isCapped命令 -
>db.cappedLogCollection.isCapped()
如果您计划将现有集合转换为上限,则可以使用以下代码来完成此操作 -
>db.runCommand({"convertToCapped":"posts",size:10000})
此代码会将我们现有的集合帖子转换为上限集合。
查询上限集合
默认情况下,对上限集合的查找查询将按插入顺序显示结果。但如果您希望以相反的顺序检索文档,请使用排序命令,如以下代码所示 -
>db.cappedLogCollection.find().sort({$natural:-1})
关于上限集合,还有一些其他值得了解的要点 -
我们无法从上限集合中删除文档。
上限集合中不存在默认索引,甚至在 _id 字段上也不存在。
在插入新文档时,MongoDB 不必实际在磁盘上寻找容纳新文档的位置。它可以盲目地将新文档插入到集合的尾部。这使得上限集合中的插入操作非常快。
类似地,在读取文档时,MongoDB 以与磁盘上存在的顺序相同的顺序返回文档。这使得读取操作非常快。