当前位置:嗨网首页>书籍在线阅读

05-创建固定集合

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

22.1.3 创建固定集合

在MongoDB数据库中创建固定集合 本节介绍使用命令renameCollection及其capped选项在MongoDB数据库中创建固定集合的步骤。请执行如下步骤来创建一个固定集合。 1.确保启动了MongoDB服务器。 2.使用下面的命令启动MongoDB shell: 3.使用下面的命令切换到数据库capped(这个数据库原本不存在,但通过执行下面的命令将创建它): 4.使用下面的命令创建固定集合myCapped,它最多可存储5个文档: 5.使用下面的代码插入10个文档,这些文档只包含值为0~9的字段num: 6.使用下面的命令显示集合myCapped中的文档: 7.输出表明这个集合中只有5个(而不是10个)文档,它们的num字段值为5~9: ▲

固定集合是大小固定的集合,检索和删除文档时都基于插入顺序,这让固定集合能够支持高吞吐量的操作。固定集合的工作原理类似于环形缓冲区:分配给固定集合的空间耗尽后,将覆盖最旧的文档,为新文档腾出空间。

定义固定集合时,还可指定它最多存储多少个文档,这可避免在集合中存储大量文档带来的索引开销。

固定集合非常适合用于存储事件日志和缓存数据,这可避免扩展集合的开销,还可避免在应用程序中编写清理集合的代码。

要在MongoDB shell中创建固定集合,可使用db对象的方法createCollection(),并将属性capped设置为true、设置集合的大小(单位为字节)以及可选的最大文档数,如下所示:

db.createCollection("log", { capped : true, size : 5242880, max : 5000 } )
mongo

▼ Try It Yourself

use capped
db.createCollection("myCapped", { capped : true, size : 1048576, max : 5 } )
for (i=0; i<10; i++){
   db.myCapped.insert({num: i})
}
db.myCapped.find()
{ "_id" : ObjectId("52f2bbc01f621a31b41c50ba"), "num" : 5 }
{ "_id" : ObjectId("52f2bbc01f621a31b41c50bb"), "num" : 6 }
{ "_id" : ObjectId("52f2bbc01f621a31b41c50bc"), "num" : 7 }
{ "_id" : ObjectId("52f2bbc01f621a31b41c50bd"), "num" : 8 }
{ "_id" : ObjectId("52f2bbc01f621a31b41c50be"), "num" : 9 }