第45章 MongoDB 固定集合(Capped Collections)教程

第45章 MongoDB 固定集合(Capped Collections)教程

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


创建固定集合

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


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

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


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

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


    >db.cappedLogCollection.isCapped()

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


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

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


固定集合查询

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


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


固定集合的功能特点

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

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


固定集合属性及用法

属性

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

用法

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

本专栏所有文章

第1章 MongoDB 教程第2章 NoSQL 简介教程
第3章 MongoDB 简介教程第4章 Windows MongoDB教程
第5章 Linux MongoDB教程第6章 OSX MongoDB教程
第7章 MongoDB 概念解析教程第8章 MongoDB 连接教程
第9章 MongoDB 创建数据库教程第10章 MongoDB 删除数据库教程
第11章 MongoDB 创建集合教程第12章 MongoDB 删除集合教程
第13章 MongoDB 插入文档教程第14章 MongoDB 更新文档教程
第15章 MongoDB 删除文档教程第16章 MongoDB 查询文档教程
第17章 MongoDB 条件操作符教程第18章 MongoDB $type 操作符教程
第19章 MongoDB Limit与Skip方法教程第20章 MongoDB 排序教程
第21章 MongoDB 索引教程第22章 MongoDB 聚合教程
第23章 MongoDB 复制(副本集)教程第24章 MongoDB 分片教程
第25章 MongoDB 备份与恢复教程第26章 MongoDB 监控教程
第27章 MongoDB Java教程第28章 MongoDB PHP 扩展教程
第29章 MongoDB PHP教程第30章 MongoDB PHP7教程
第31章 Node.js MongoDB教程第32章 MongoDB 关系教程
第33章 MongoDB 数据库引用教程第34章 MongoDB 覆盖索引查询教程
第35章 MongoDB 查询分析教程第36章 MongoDB 原子操作教程
第37章 MongoDB 高级索引教程第38章 MongoDB 索引限制教程
第39章 MongoDB ObjectId教程第40章 MongoDB Map Reduce教程
第41章 MongoDB 全文检索教程第42章 MongoDB 正则表达式教程
第43章 MongoDB 管理工具教程第44章 MongoDB GridFS教程
第45章 MongoDB 固定集合教程第46章 MongoDB 自动增长教程

寄语

本文有榴莲酱优快云原创,欢迎点赞、转载,博客地址:https://blog.youkuaiyun.com/qq441540598

  • 做事没必要奢求人人都理解,做人没必要指望人人都喜欢。做什么都想要所有人鼓掌赞成,那就必然束手束脚,胆战心惊,永远满足不了旁观者五花八门的要求和愿望。其实,只要你做事严谨,做人坦荡。结果能让你觉得重要的人满意,这事就值回票钱了。
  • 有些事情如果你不想提前去表达,等待你的只能是别人的误会。
  • 不要试图满足所有人的所有需求,除非他们愿意付高价给你。
  • 岁月就象一条河,左岸是无法忘记的回想,右岸是值得控制的青春年华,两头飞速流淌的,是年轻隐隐的伤感。人间有很多美好的东西,但真正属于本人的却并未几。
  • 遵章守纪是安全的良药,违章违纪是危险的根苗。
<think>好的,用户想学习如何在MongoDB中创建集合。首先,我需要整理MongoDB中创建集合的两种主要方法:自动创建和手动使用`db.createCollection()`命令。根据提供的引用内容,引用[1]提到插入文档时会自动创建集合,而引用[3]和引用[4]则展示了手动创建的方式。需要明确这两种方法的区别和使用场景。 接下来,要确保步骤清晰。自动创建非常简单,用户只需插入文档即可,如引用[1]中的示例`db.mycol2.insert({"name" : "菜鸟教程"})`。手动创建则允许更多的配置选项,比如设置集合的大小、是否固定等,这在引用[3]和引用[4]中都有提到,例如`db.createCollection("liulianjiangcsdn")`和带有参数的创建方式。 还需要注意用户可能遇到的常见问题,比如集合命名规则、何时选择手动创建等。例如,当需要特定配置如固定集合capped)时,必须手动创建。同时,要提醒用户使用`show collections`来验证集合是否创建成功,这在引用[1]和引用[3]中都有示例。 然后,根据用户的要求生成相关问题。问题应涵盖创建方法、配置选项、应用场景以及常见错误,这样用户能进一步深入学习。需要确保问题与引用内容相关,比如引用[4]提到的参数配置,可以生成关于参数的问题。 最后,检查回答是否符合格式要求,如使用正确的LaTeX格式,避免使用Markdown,结构清晰,分步骤说明,并正确添加引用标识。确保没有遗漏任何关键点,并且引用来源准确对应。</think>### MongoDB 创建集合教程MongoDB中,创建集合主要有两种方式:**自动隐式创建**和**手动显式创建**。以下为具体方法及步骤: --- #### 1. 自动隐式创建集合 当向一个**不存在的集合**插入文档时,MongoDB会自动创建该集合。 **操作示例**: ```javascript > use test // 切换到test数据库 > db.my_new_collection.insert({name: "示例数据", value: 100}) // 插入文档时自动创建集合 ``` 插入成功后可通过 `show collections` 验证集合是否存在[^1][^3]。 --- #### 2. 手动显式创建集合 使用 `db.createCollection(name, options)` 命令可自定义集合属性,适用于需要特殊配置的场景。 **语法参数**: - `name`: 集合名称 - `options`(可选): 包含配置项的对象,如: - `capped`: 是否创建固定集合固定大小,数据覆盖写入)[^4] - `size`: 固定集合的存储上限(单位:字节) - `max`: 固定集合允许的最大文档数 **操作示例**: ```javascript > db.createCollection("logs", { capped: true, size: 1048576 }) // 创建1MB大小的固定集合 > db.createCollection("users") // 创建普通集合 ``` 创建后可通过 `db.getCollectionInfos({name: "logs"})` 查看集合详细信息[^3]。 --- #### 关键区别与使用场景 | 方法 | 适用场景 | 特点 | |--------------|--------------------------------------|--------------------------| | 自动隐式创建 | 快速插入数据,无需特殊配置 | 简单但无法设置集合属性 | | 手动显式创建 | 需要固定大小、索引优化等高级配置时 | 灵活性高,可定制参数 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴莲酱csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值