•   MongoDB教程
  • MongoDB快速入门
  • MongoDB历史
  • MongoDB特点
  • MongoDB数据库的优点
  • MongoDB安装配置(Windows)
  • MongoDB安装配置(Ubuntu)
  • MongoDB安装配置(RedHat/CentOS)
  • MongoDB数据建模
  • MongoDB创建数据库
  • MongoDB删除数据库
  • MongoDB创建集合
  • MongoDB删除集合
  • MongoDB数据类型
  • MongoDB插入文档
  • MongoDB查询文档
  • MongoDB更新文档
  • MongoDB删除文档
  • MongoDB投影(选择字段)
  • MongoDB限制记录数
  • MongoDB排序记录
  • MongoDB索引
  • MongoDB聚合
  • MongoDB复制
  • MongoDB分片
  • MongoDB备份与恢复
  • MongoDB部署
  • Java连接MongoDB操作
  • Python连接MongoDB操作
  • PHP连接MongoDB操作
  • Ruby连接MongoDB操作
  • 高级部分
  • MongoDB关联关系
  • MongoDB数据库引用
  • MongoDB覆盖查询
  • MongoDB分析查询
  • MongoDB原子操作
  • MongoDB高级索引
  • MongoDB索引限制
  • MongoDB ObjectId
  • MongoDB Map Reduce
  • MongoDB文本搜索
  • MongoDB正则表达式
  • MongoDB GridFS
  • MongoDB固定循环集合
  • MongoDB自动递增序列
  • 用户及安全
  • MongoDB安全检查表
  • MongoDB认证
  • MongoDB用户
  • MongoDB添加用户
  • MongoDB启用身份验证
  • MongoDB管理用户和角色
  • MongoDB更改用户密码和自定义数据

MongoDB固定循环集合

MongoDB固定集合(Capped collections)是固定大小的循环集合,遵循插入顺序以支持创建,读取和删除操作的高性能。 通过循环,当分配给集合的固定大小被耗尽时,它将开始删除集合中最旧的文档,而不用提供任何明确的命令。

如果更新导致增加的文档大小,固定集合会限制文档的更新。 由于上限集合按照磁盘存储的顺序存储文档,因此可确保文档大小不会增加磁盘上分配的大小。固定集合最适用于存储日志信息,缓存数据或任何其他高容量数据。

创建固定集合

要创建一个固定集合,可使用 createCollection 命令,但是capped选项的值为true,并指定以字节为单位的最大集合大小。

>db.createCollection("cappedLogCollection",{capped:true,size:99999})

除了指定集合大小,还可以使用max参数限制集合中的文档数量 -

>db.createCollection("cappedLogCollection",{capped:true,size:99999,max:1000})

如果要查看集合是否固定,请使用以下isCapped命令 -

>db.cappedLogCollection.isCapped()

如果想要将一个集合转换为上限的集合,则可以使用以下代码进行操作:

>db.runCommand({"convertToCapped":"posts",size:99999})

此代码将现有的post转换为固定集合。

查询固定集合

默认情况下,在固定集合上查询将以插入顺序显示结果。 但是,如果要以相反的顺序检索文档,请使用sort命令,如以下代码所示 -

> db.cappedLogCollection.find().sort({$natural:-1})

关于固定集合值得注意的几个要点 -

  • 无法从固定集合中删除文档。
  • 固定集合中没有默认索引,甚至不在_id字段上。
  • 在插入新文档时,MongoDB不需要在磁盘上实际寻找一个容纳新文档的位置。它可以随便地将新文档插入集合的尾部。这样就使得在固定集合中的插入操作非常快。
  • 类似地,在读取文档的同时,MongoDB按照磁盘上存储的顺序返回文档。这样使读取操作非常快。

上一篇:MongoDB GridFS下一篇:MongoDB自动递增序列