MongoDB(4)- Collection 集合相关
Collection
- MongoDB 将文档存储在集合中
- 集合存储在 Database 中
- 集合类似于关系数据库(Mysql)中的表
- 如果集合不存在,则 MongoDB 会在第一次存储该集合数据时创建该集合

MongoDB 集合的命名规则
集合名称要求符合 UTF-8 标准的字符串
| 序号 | 注意事项 |
|---|---|
| 1 | 集合名不能是空串,如"" |
| 2 | 不能含有空字符 null |
| 3 | 不能以 system. 开头,这是系统集合保留的前缀 |
| 4 | 不能包含 $ |
| 5 | 命名空间最大为 255 bytes |
对于分别部署在 Windows、Linux、UNIX 系统上的 MongoDB,集合的命名方式与数据库命名方式一致
显示所有集合
show collections
创建集合
MongoDB 集合的创建有显式和隐式两种方法
显示创建
使用 db.createCollection(name, options) 方法来实现
- name:创建的集合名称
- options:可选项,指定内存大小和索引等
db.createCollection("mySet", {capped:true,size:6142800, max :10000 })
常用 options
| 参数 | 类型 | 描述 |
|---|---|---|
| capped | Boolean | (可选)如果为 true,则启用封闭的集合。上限集合是固定大小的集合,它在达到其最大时自动覆盖其最旧的条目。如果指定 true,则还需要指定 size 参数 |
| size | 数字 | (可选)指定上限集合的最大大小(以字节为单位)。如果 capped 为 true,那么还需要指定次字段的值 |
| max | 数字 | (可选)指定上限集合中允许的最大文档数 |
注意:在插入文档时,MongoDB 首先检查上限集合 capped 字段,然后检查 max 字段
隐式创建
- 上面的 createCollection 方法,如果不需要指定 options 的时候,就没必要用显示创建
- 因为 MongoDB 会在集合首次存储数据时自动创建新的集合
db.myDB.insert( {"name": "tom"} )
文档验证
- 默认情况下,集合不要求存储的所有文档具有相同的数据结构
- 即单个集合中的不同文档不需要具有相同的字段集
- 并且一个字段的数据类型可以在集合内的文档中不同
- 总结: Bson 数据结构、字段都不需要必须一致
- 从 MongoDB 3.2 开始,可以在 update 和 insert 操作期间为集合强制执行文档验证规则(后面再展开讲)
修改文档数据结构
如果要改集合中文档的结构,可以添加新字段、删除现有字段、修改字段类型(后面再展开讲)
UUID
- 集合会被分配一个不可变的 UUID
- 集合 UUID 在副本集的所有成员和分片集群中的分片保持不变
查看集合的 uuid
> db.getCollectionInfos()
[
{
"name" : "myNewCollection1",
"type" : "collection",
"options" : { },
"info" : {
"readOnly" : false,
"uuid" : UUID("3929147e-5030-4353-938c-3405487d330f")
},
"idIndex" : {
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
}
}
]
扩展
关于 Collection 还有蛮多方法的,后面用到再展开讲解哦
MongoDB(4)- Collection 集合相关的更多相关文章
- PCB MongoDB 数据库 Collection集合导出与导入
由于一直以来用微软可视化图形界面习惯了,而MongoDB是命令式操作,而用系统自带CMD操作不方便, 这里介绍一款CMD的替代品,大小100多M. Cmder工具下载 https://github. ...
- Mongodb Capped Collection集合
MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素! ...
- JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue
前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...
- JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序
前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...
- MongoDB中数组类型相关的操作
概述 在MongoDB的模式中,我们经常将一些数据存储到数组类型中,即我们常见的嵌套模式设计的一种实现方式.数组的这种设计实现方式在关系数据库中是没有或者说不常见的.所以,通过本文我们来梳理一下Mon ...
- 遍历Collection集合中的6种方法:
下面的代码演示了遍历Collection集合的6种方法,注意Collection集合的遍历远不止于增强for循环,和迭代器两种. 代码如下: package com.qls.traverse; imp ...
- Java SE 核心 II【Collection 集合框架】
Collection集合框架 在实际开发中,需要将使用的对象存储于特定数据结构的容器中.而 JDK 提供了这样的容器——集合框架,集合框架中包含了一系列不同数据结构(线性表.查找表)的实现类.集合的引 ...
- 浅谈Collection集合
俗话说:一个东西,一件事都离不开三句话:"是什么,为什么,怎么办" 集合是什么: 集合简单的说一个数组集合的高级体现,用来存储数据或对象的容器: 集合为什么存在: 集合只是体现了对 ...
- Collection集合的功能及总结
Collection集合是集合顶层接口,不能实例化 功能 1.添加功能 boolean add(Object obj):添加一个元素 boolean addAll(Collection c):添加一个 ...
随机推荐
- 项目去O实践
现状(自下而上) 1.Oracle数据库,表,序列,存储过程,视图 2.ibatis框架,映射xml中的sql语句 3.应用中通过指定字符串的形式获取查询结果 目标 1.置换数据库为PG数据库,迁 ...
- 资源适配【eg: values-sw600dp的命名和drawable-400dpi的命名】
通过getResources().getConfiguration().smallestScreenWidthDp获取即可 这篇文章讲了values-sw的适配: https://blog.csdn. ...
- Android 开发学习进程0.33 横竖屏切换
安卓横竖屏大多数已经在manifest文件中将activity使用android:screenOrientation="portrait"属性写死,如简单的界面切换可直接更改为&q ...
- Kotlin强化实战!这份学习手册让你的面试稳如泰山
一.引言 正如官网的slogan所描述:kotlin,是一门让程序员写代码时更有幸福的现代语言. 同时,也正如维基百科里介绍: JetBrains公司希望Kotlin能够推动IntelliJ IDEA ...
- 一、MinIO的基本概念
MinIO的官方网站非常详细,以下只是本人学习过程的整理 一.MinIO的基本概念 二.Windows安装与简单使用MinIO 三.Linux部署MinIO分布式集群 四.C#简单操作MinIO 一. ...
- vue3.0安装
一 .vue3.0安装 vue3.0安装 个人推荐以下2种 (1). 开发工具的对应代码中 插入CDN <script src="https://unpkg.com/vue@next& ...
- Java自定义注解使用和详解
前言 我们在做开发springboot 项目时候会遇到各种各样注解,使用各种各样注解,极大的简便了我们开发流程,方式,从JDK5开始支持 注解是Java语言的一种强大的功能 可以理解为代码上的特殊标记 ...
- BaiduSpider:爬取百度的利器
视频链接:https://www.zhihu.com/zvideo/1272864710321516544 BaiduSpider是一个能够爬取百度搜索结果的Python爬虫,轻量但强大.目前支持百度 ...
- S3C2440—12.按键中断
文章目录 一. 总体 二. CPSR设置 三. 中断源设置 四. 中断控制器设置 五. C中断处理函数 六. 汇编IRQ异常处理程序 七. 源码 一. 总体 要驱动按键中断控制LED亮灭,程序要进行如 ...
- SQL 练习40
按照出生日期来计算学生的年龄信息 IF OBJECT_ID('GetStudentAge','FN') IS NOT NULL DROP FUNCTION GetStudentAge GO CREAT ...