iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MongoDB中固定集合capped collection的示例分析
  • 573
分享到

MongoDB中固定集合capped collection的示例分析

2024-04-02 19:04:59 573人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关mongoDB中固定集合capped collection的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一 . 什么是固定集合Mon

这篇文章将为大家详细讲解有关mongoDB中固定集合capped collection的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一 . 什么是固定集合

MonGoDB中有一种特殊类型的集合,值得我们特别留意,那就是固定集合(capped collection)。

固定集合可以声明collection的容量大小,其行为类似于循环队列。数据插入时,新文档会被插入到队列的末尾,如果队列已经被占满,那么最老的文档会被之后插入的文档覆盖。

固定集合特性:固定集合很像环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间。一般来说,固定集合适用于任何想要自动淘汰过期属性的场景。

固定集合应用场景

比如日志文件,聊天记录,通话信息记录等只需保留最近某段时间内的应用场景,都会使用到MongoDB的固定集合。

固定集合的优点

1.写入速度提升。固定集合中的数据被顺序写入磁盘上的固定空间,所以,不会因为其他集合的一些随机性的写操作而“中断”,其写入速度非常快(不建立索引,性能更好)。

2.固定集合会自动覆盖掉最老的文档,因此不需要再配置额外的工作来进行旧文档删除。设置Job进行旧文档的定时删除容易形成性能的压力毛刺。

固定集合非常实用与记录日志等场景。

二 . 固定集合的创建

不同于普通集合,固定集合必须在使用前显式创建。

例如,创建固定集合coll_testcapped,大小限制为1024个字节。

db.createCollection("coll_testcapped",{capped:true,size:1024});

除了大小,创建时还可以指定固定集合中文档的数据量。

例如,创建固定集合coll_testcapped,大小限制为1024个字节,文档数量限制为100。

db.createCollection("coll_testcapped2",{capped:true,size:1024,max:100});

创建固定集合还有另一途径,就是将普通集合装换为固定集合,使用的命令是convertToCapped。

例如将testcol1集合转换为一个大小为1024字节的固定集合:

db.runCommand({"convertToCapped":"testcol1","size":1024})

三 . 固定集合信息的查看

(1)判断集合是否为固定集合,其判定命令为:

db.集合.isCapped()

例如判断前面已创建的固定集合coll_testcapped2是否为固定集合:

MongoDB中固定集合capped collection的示例分析

(2) 从集合信息中获取 有关固定集合的属性,查看集合的指令为:

db.集合.stats()

例如查看集合coll_testcapped2的信息:

MongoDB中固定集合capped collection的示例分析

四 . 注意事项:

(1) 固定集合创建之后就不可以改变,只能将其删除重建。

(2) 普通集合可以使用convertToCapped转换固定集合,但是固定集合不可以转换为普通集合。

(3) 创建固定集合,为固定集合指定文档数量限制时(指参数max),必须同时指定固定集合的大小(指参数size)。不管先达到哪一个限制,之后插入的新文档都会把最老的文档移除集合。

(4) 使用convertToCapped命令将普通集合转换固定集合时,既有的索引会丢失,需要手动创建。并且,此转换命令没有限制文档数量的参数(即没有max的参数选项)。

(5) 不可以对 固定集合 进行分片。

(6) 对固定集合中的文档可以进行更新(update)操作,但更新不能导致文档的Size增长或缩小,否则更新失败。

假如集合中有一个key,其value 对应的数据长度为100个字节,如果要更新这个key 对应的value,更新后的值也必须为100个字节,大于100个字节不可以,小于100个字节也不可以。

报错信息为:Cannot change the size of a document in a capped collection : XXXX(XXXX代表某个数据字) !=XXXX。

(7) 不可以对固定集合执行删除文档操作,但可以删除整个集合。

删除文档时,报错信息为:cannot remove from a capped collection:XXXX

(8) 还有一定需要注意,对集合估算size时,不要依据集合的storageSize ,而是依据集合的size。storageSize是wiredTiger存储引擎采用高压缩算法压缩后的。

例如通过db.集合.stats()命令查看某集合的数据,"size" 和 "storageSize" 二者相差还是很大的。

MongoDB中固定集合capped collection的示例分析

关于“MongoDB中固定集合capped collection的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: MongoDB中固定集合capped collection的示例分析

本文链接: https://www.lsjlt.com/news/58576.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB中固定集合capped collection的示例分析
    这篇文章将为大家详细讲解有关MongoDB中固定集合capped collection的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一 . 什么是固定集合Mon...
    99+
    2024-04-02
  • 【MongoDB】Capped固定集合
        不同于普通集合,固定集合必须在使用之前显示创建,可以使用create命令创建固定集合。在shell中,可以使用db.createCollection函数://...
    99+
    2024-04-02
  • MongoDB中怎么固定集合
    MongoDB中怎么固定集合,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 所谓的固定集合是规定集...
    99+
    2024-04-02
  • mongodb中聚合的示例分析
    这篇文章主要介绍了mongodb中聚合的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一:聚合常见的聚合操作跟sql server一...
    99+
    2024-04-02
  • MongoDB中副本集的示例分析
    这篇文章主要介绍了MongoDB中副本集的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:replication set复制...
    99+
    2024-04-02
  • python中集合的示例分析
    这篇文章主要介绍python中集合的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、集合的基本信息集合:集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重。格式:set1 = set(...
    99+
    2023-06-15
  • Java中集合的示例分析
    小编给大家分享一下Java中集合的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java集合java集合类存放于java.util包中,是一个用来存放对象...
    99+
    2023-06-20
  • mybatis中foreach collection的示例分析
    这篇文章主要介绍mybatis中foreach collection的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在SQL开发过程中,动态构建In集合条件查询是比较常见的用法,在Mybatis中提供了for...
    99+
    2023-05-31
    mybatis foreach collection
  • MongoDB副本集的示例分析
    小编给大家分享一下MongoDB副本集的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实验环境使用的Mongodb版本为...
    99+
    2024-04-02
  • ES6中Map集合的示例分析
    这篇文章将为大家详细讲解有关ES6中Map集合的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Map集合类似于对象,也是键值对的集合,但是 键 不限于字符串,各种...
    99+
    2024-04-02
  • ES6中集合set的示例分析
    这篇文章给大家分享的是有关ES6中集合set的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。集合set新的数据结构Set(集合),它类似于数组,成员的值都是唯一的,集合实...
    99+
    2024-04-02
  • java集合的示例分析
    这篇文章主要介绍了java集合的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、简介1、java集合框架图从上面的集合框架图可以看到,Java 集合框架主要包括两种...
    99+
    2023-06-20
  • java集合中list的示例分析
    这篇文章主要为大家展示了“java集合中list的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java集合中list的示例分析”这篇文章吧。1、List接口该接口定义的元素是有序的且可...
    99+
    2023-05-30
    java list
  • Oracle中集合查询的示例分析
    这篇文章主要介绍了Oracle中集合查询的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用并集运算,查询20号部门或30号部门的员...
    99+
    2024-04-02
  • JAVA中集合体系的示例分析
    这篇文章给大家分享的是有关JAVA中集合体系的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、集合概况Java是一种面向对象语言,如果我们要针对多个对象进行操作,那么首先必要将多个对象进行保存起来之后,...
    99+
    2023-05-30
    java
  • Java Map集合的示例分析
    这篇文章将为大家详细讲解有关Java Map集合的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言map集合是我们常使用的集合,了解和使用map集合是必要的二、Map介绍基本形式:...
    99+
    2023-06-25
  • Java中Collection集合常用API之 Collection存储自定义类型对象的示例代码
    目录Collection常用APICollection存储自定义类型对象Collection常用API Collection集合API Collection是单列集合的祖宗接口,因此...
    99+
    2022-12-21
    Java  Collection存储自定义类型对象 Collection集合常用API java Collection集合
  • Java中集合关系图的示例分析
    这篇文章主要介绍Java中集合关系图的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!下面是一张下载的Java中的集合类型的继承关系图,便于正确的理解和使用相应的集合类型。  几个面试常见问...
    99+
    2023-05-30
    java
  • MongoDB中chunk的示例分析
    这篇文章主要介绍MongoDB中chunk的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!    MongoDB中,在使用到分片的时候,常常会用到chunk的概念,chunk是指一个集合数...
    99+
    2023-06-14
  • MongoDB中副本集丢失数据的示例分析
    这篇文章主要为大家展示了“MongoDB中副本集丢失数据的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MongoDB中副本集丢失数据的示例分析”这篇文...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作