MongoDB固定集合(CappedCollections)

固定集合是具有固定大小的循环集合,遵循插入顺序,以支持高性能的创建、读取和删除操作。通过循环,当分配给集合的固定大小用完时,它将删除集合中最旧的文档,而不提供任何显式命令。

专注于为中小企业提供成都网站制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业乐都免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了超过千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

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

创建固定集合

要创建一个具有固定大小的集合,我们可以使用常规的 createCollection 命令,但需要将 capped 选项设置为 true,并以字节为单位设置集合的大小。

> db.createCollection("bianchengbang", {capped:true, size:10000})
{ "ok" : 1 }

其中 bianchengbang 为要创建的集合名称。除了集合的大小外,我们还可以使用 max 参数来限制集合中文档的数量:

> db.createCollection("bianchengbang", {capped:true, size:10000, max:1000})
{ "ok" : 1 }

如果要检查集合是否为固定集合,可以使用 isCapped 命令:

> db.bianchengbang.isCapped()
true

如果您需要将已经存在的集合转换为固定集合,可以使用如下命令:

> db.runCommand({"convertToCapped":"bianchengbang",size:10000})
{ "ok" : 1 }

上面的命令可以将我们已存在的集合“bianchengbang”转换为固定集合。

固定集合查询

固定集合中的文档是按照插入顺序储存的,默认情况下查询也是按照插入顺序返回的,当然也可以使用 sort() 方法调整返回的顺序。示例代码如下:

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

关于固定集合,有以下几点需要注意:

  • 可以在固定集合中插入或更新数据,但更新时数据不能超出集合的大小,否则更新会失败;
  • 不允许删除固定集合中的文档,但是可以使用 drop() 方法删除集合中的所有数据,在 drop 后需要显式地重建集合;
  • 固定集合中不存在默认索引,甚至在 _id 字段上也不存在;
  • 在插入新文档时,MongoDB 实际上不必在磁盘上寻找容纳新文档的位置,它可以在集合的尾部盲目地插入新文档,这使得在固定集合中插入文档非常快;
  • 在查询文档时,MongoDB 返回的文档顺序与文档在磁盘上存储的顺序是相同的,这使得查询文档的速度非常快。

网页题目:MongoDB固定集合(CappedCollections)
当前网址:http://www.shufengxianlan.com/qtweb/news0/41050.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联