有上限集合(Capped collections):

Capped集合是固定大小的集合,支持基于插入顺序插入和检索文档的高吞吐量操作。Capped集合的工作方式类似于循环缓冲区:一旦集合填满了它分配的空间,它就会通过覆盖集合中最早的文档来为新文档腾出空间作为有上限的集合的另一种选择,考虑MongoDB的TTL(生存时间)索引。如通过设置TTL使集合中的数据过期,这些索引允许您根据日期类型字段的值和索引的TTL值从普通集合中过期并删除数据。TTL索引与有上限的集合不兼容。

特点

插入顺序
有上限的集合保留插入顺序。查询不需要索引,按插入顺序返回文档。没有这种索引开销,capped集合可以支持更高的插入吞吐量。自动删除最旧的文档
为新文档腾出空间,有上限的集合自动删除集合中最早的文档,不需要脚本或显式删除操作。_id索引
默认情况下,Capped集合有一个_id字段和一个_id字段上的索引。使用场景:
存储大容量系统产生的日志信息。在没有索引的有上限集合中插入文档的速度接近于直接将日志信息写入文件系统的速度。此外,内置的先进先出属性在管理存储使用时,维护事件的顺序。
在有上限的集合中缓存少量数据。因为缓存的读量比写量大,所以您需要确保这个集合始终保持在工作集中(即在RAM中),或者对所需的索引或索引接受一些写惩罚。(一种缓存)

限制和建议

读
从MongoDB 5.0开始,当从一个capped集合中读取时,你不能使用read concern “snapshot”。更新
如果计划更新有上限的集合中的文档,请创建索引,以便这些更新操作不需要进行集合扫描。文档大小
如果更新或替换操作更改了文档大小,则操作将失败。删除文档
不能从有上限的集合中删除文档。要从集合中删除所有文档,请使用drop()方法删除集合并重新创建有上限的集合。分片
不能对有上限的集合进行分片查询效率
使用自然排序从集合中有效地检索最近插入的元素。这类似于在日志文件上使用tail命令。聚合$out
聚合管道阶段$out不能将结果写入有上限的集合。事务
从MongoDB 4.2开始,你不能在事务中写入有上限的集合

创建有上限集合

使用db.createCollection()方法显式创建有上限的集合。当创建一个有上限的集合时,您必须以字节为单位指定该集合的最大大小,MongoDB将为该集合预先分配。capped集合的大小包括用于内部开销的少量空间。# 创建有上限集合log,大小100k
# 如果size字段小于或等于4096,那么集合的上限为4096字节。否则,MongoDB会将提供的大小提高到256的整数倍。
db.createCollection( "log", { capped: true, size: 100000 } );
# 输出
{ "ok" : 1 }# max设置集合最大文档数
# 如果一个集合在达到最大文档数之前达到了最大大小限制,MongoDB将删除旧文档。
db.createCollection("log", { capped : true, size : 5242880, max : 5000 } );# 如果在有上限的集合执行find(), MongoDB会保证结果的顺序与插入顺序相同。
# 要以反向插入顺序检索文档,使用find()和sort()方法,并将$natural参数设置为-1
db.log.find().sort( { $natural: -1 } );# 检查集合是否是有上限的
db.log.isCapped();# 可以使用convertToCapped命令将非上限集合转换为上限集合
# 在操作期间持有数据库排他锁。同一数据库的其他操作将被阻塞,直到该操作完成
db.runCommand({"convertToCapped": "mycoll", size: 100000});

10,有上限集合(Capped collections)相关推荐

  1. mongodb固定集合(Capped Collections) | MongoDB 自动删除集合中过期的数据——TTL索引

    文章目录 mongodb固定集合(Capped Collections) 一.什么是mongodb固定集合(Capped Collections) 二.Capped Collections使用场景 三 ...

  2. MongoDB 固定集合(Capped Collections)

    refs: 1)Capped Collections | MongoDB Blog 2)https://xiayuanfeng.iteye.com/blog/989024 3)MongoDB 固定集合 ...

  3. mongodb主从设置,capped collections等常用命令集合

    ############### Mongodb  主 <==> 从切换的时候要删除  ############## ############### use local    ####### ...

  4. mongodb固定集合(Capped Collection)和大文件管理(GridFS)

    Capped Collection 固定集合(Capped Collection)是性能出色的有着固定大小的集合,以LRU(Least Recently Used最近最少使用)规则和插入顺序进行age ...

  5. mongodb上限集合_用Java创建MongoDB上限集合

    mongodb上限集合 在MongoDB中,可以以循环方式将文档的插入顺序保留到集合中. 这些类型的集合在MongoDB中称为上限集合. MongoDB文档描述了上限集合: 上限集合是固定大小的集合, ...

  6. 用Java创建MongoDB上限集合

    在MongoDB中,可以以循环方式将文档的插入顺序保留到集合中. 这些类型的集合在MongoDB中称为上限集合. MongoDB文档描述了上限集合: 上限集合是固定大小的集合,它们支持高吞吐量操作,这 ...

  7. Java高级-Lambda 表达式、异常处理、集合、泛型、List集合、Map集合、Collections类

    目录 Lambda 表达式 Java Lambda 表达式的优缺点 异常处理 Exception 处理及常见异常 try catch语句 try catch finally语句 throws 声明异常 ...

  8. mongoDB's Capped Collections

    在mongoDB中有一个非常好用的collection : Capped Collections. 这种Collection可以设置最大的extent size或max documents,除此之外, ...

  9. java集合框架的结构_集合框架(Collections Framework)详解及代码示例

    简介 集合和数组的区别: 数组存储基础数据类型,且每一个数组都只能存储一种数据类型的数据,空间不可变. 集合存储对象,一个集合中可以存储多种类型的对象.空间可变. 严格地说,集合是存储对象的引用,每个 ...

最新文章

  1. 192. Word Frequency 使用shell统计词频
  2. 《自然》:欧洲根据已知基因序列合成新冠病毒,助力疫苗开发
  3. 疑案追踪:Spring Boot内存泄露排查记
  4. mac 安装淘宝镜像报错之坑
  5. java根据日期判断星座_根据日期计算星座
  6. 稳扎稳打Silverlight(17) - 2.0数据之详解DataGrid, 绑定数据到ListBox
  7. 什么是服务器信息怎么看,怎么查看服务器信息
  8. PHP实现图片马赛克效果
  9. 三次贝塞尔曲线平滑多边形
  10. leetcode 123. Best Time to Buy and Sell Stock III | 123. 买卖股票的最佳时机 III(总结DP 模型套路)
  11. php 高效判断是否登录,php 判断用户是否登录
  12. 理解Attention机制原理及模型
  13. docker运行storm及wordcount实例
  14. python int函数 向上取整_【Python小课】 print()函数
  15. CC++期末课程设计——产品管理系统(源代码+详细注释)
  16. STM32单片机蜂鸣器实验
  17. 编写函数求区间[200,3000]中所有的回文数, 回文数是正读和反读都是一样的数
  18. 【USACO1.2_1】★Milking Cows 挤牛奶
  19. 判断N!末尾有多少个0
  20. 《React扩展知识一》setState更新状态2种写法/ lazyLoad / Fragment / Context / Hooks

热门文章

  1. 【调剂】东南大学无锡校区2020年相关专业调剂信息
  2. window查看计算机配置文件,教您如何查看计算机配置
  3. 读《费马大定理——一个困惑了世间智者358年的迷》
  4. SpringBoot @Cacheable Redis 设置缓存过期时间
  5. gpu tensorflow 怎么看是否安装成功_搭建和配置TensorFlow环境
  6. 浅谈Endpoint
  7. 分布式系统如何保证一致性
  8. MASK RCNN 之RPN
  9. 退押金还得拉好友,ofo神操作惹众怒,网友:坑钱就算了,还要坑朋友?
  10. 汉诺塔3层递归法php,php之汉诺塔递归算法分析和实现