开心档-软件开发入门之MongoDB 固定集合

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 本章将会讲解MongoDB 固定集合(Capped Collections)

   image.gif

  • 作者简介:每天分享MongoDB教程的学习经验、和学习笔记。
  • 座右铭:有自制力,做事有始有终;学习能力强,愿意不断地接触学习新知识。
  • 个人主页: 雪奈ie的主页

前言

本章将会讲解MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素!

目录

MongoDB 固定集合(Capped Collections)

创建固定集合

固定集合查询

固定集合的功能特点

固定集合属性及用法

属性

用法


MongoDB 固定集合(Capped Collections)

MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素!


创建固定集合

我们通过createCollection来创建一个固定集合,且capped选项设置为true:

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

image.gif

还可以指定文档个数,加上max:1000属性:

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

image.gif

判断集合是否为固定集合:

>db.cappedLogCollection.isCapped()

image.gif

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

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

image.gif

以上代码将我们已存在的 posts 集合转换为固定集合。


固定集合查询

固定集合文档按照插入顺序储存的,默认情况下查询就是按照插入顺序返回的,也可以使用$natural调整返回顺序。

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

image.gif


固定集合的功能特点

可以插入及更新,但更新不能超出collection的大小,否则更新失败,不允许删除,但是可以调用drop()删除集合中的所有行,但是drop后需要显式地重建集合。

在32位机子上一个cappped collection的最大值约为482.5M,64位上只受系统文件大小的限制。


固定集合属性及用法

属性

    • 属性1:对固定集合进行插入速度极快
    • 属性2:按照插入顺序的查询输出速度极快
    • 属性3:能够在插入最新数据时,淘汰最早的数据

    用法

      • 用法1:储存日志信息
      • 用法2:缓存一些少量的文档

      上一篇

      MongoDB 自动增长

      下一篇

      MongoDB - 连接


      相关实践学习
      MongoDB数据库入门
      MongoDB数据库入门实验。
      快速掌握 MongoDB 数据库
      本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
      相关文章
      |
      3月前
      |
      NoSQL MongoDB 数据库
      MongoDB 删除集合
      10月更文挑战第14天
      53 1
      |
      4月前
      |
      NoSQL MongoDB
      MongoDB入门-sort和投影
      这篇文章介绍了MongoDB中的排序(sort)和投影(projection)操作,通过示例代码展示了如何使用这些功能来控制查询结果的排序顺序和返回的字段。
      40 3
      MongoDB入门-sort和投影
      |
      4月前
      |
      NoSQL MongoDB
      MongoDB入门-MongoDB的CURD语句练习
      这篇文章提供了MongoDB的CURD操作的练习,涵盖了插入、查询、更新和删除数据的基本命令,并通过具体示例展示了如何在MongoDB中执行这些操作。
      50 2
      |
      2月前
      |
      缓存 NoSQL MongoDB
      |
      3月前
      |
      存储 NoSQL MongoDB
      MongoDB入门级别教程全(Windows版,保姆级教程)
      一份全面的MongoDB入门级教程,包括在Windows系统上安装MongoDB、使用MongoDB Shell和Compass GUI进行数据库操作,以及MongoDB的基本数据类型和查询技巧。
      108 2
      MongoDB入门级别教程全(Windows版,保姆级教程)
      |
      3月前
      |
      存储 NoSQL MongoDB
      MongoDB 创建集合
      10月更文挑战第13天
      35 1
      |
      5月前
      |
      持续交付 jenkins C#
      “WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
      【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
      100 0
      |
      11天前
      |
      存储 JSON NoSQL
      学习 MongoDB:打开强大的数据库技术大门
      MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
      46 15
      |
      19天前
      |
      存储 NoSQL 关系型数据库
      阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
      我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
      阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
      |
      2月前
      |
      NoSQL Cloud Native atlas
      探索云原生数据库:MongoDB Atlas 的实践与思考
      【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。