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):添加一个 ...
随机推荐
- user-agent浏览器标识集合
user_agent_list = [ "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET ...
- 关于Asp.Net MVC html.renderaction传递参数
View视图 @{html.renderaction("控制器方法名","控制器名称",new{params1="参数值"})} Contr ...
- 浅谈vue响应式原理及发布订阅模式和观察者模式
一.Vue响应式原理 首先要了解几个概念: 数据响应式:数据模型仅仅是普通的Javascript对象,而我们修改数据时,视图会进行更新,避免了繁琐的DOM操作,提高开发效率. 双向绑定:数据改变,视图 ...
- WPS函数
vlookup函数:=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 官方解释:其逻辑为在某一区间内搜索区间外某一单元格的值, ...
- 从门外汉到腾讯Android高级研发——一个半路出家菜鸟的艰难逆袭之路
我是在去年3月份加入腾讯公司,目前是腾讯公司某技术部门里面的一个小负责人,年薪月薪大税后概30K,谈不上多么厉害,但在回想自己半路出家学习编程,从一个销售到现在终于进入中国互联网顶尖公司,还是有些许感 ...
- markdown的摘要测试
123456789 1 123456789 2 123456789 3 123456789 4 123456789 5 123456789 6 粗体 123456 划线 123456 斜体 12345 ...
- Specify Default JDK on Ubuntu
sudo update-alternatives --config java will produce: Selection Path Priority Status 0 /usr/lib/jvm/j ...
- SSM自学笔记(二)
3.SpringMVC入门 1.Spring与Web环境集成 1.1 ApplicationContext应用上下文获取方式 应用上下文对象是通过new ClasspathXmlApplication ...
- 一款优秀的国产性能测试工具kylinPET在麒麟操作系统上的能力表现
一直以来人们从事性能测试,使用最多的是Jmeter和LoadRuner .笔者在网上找了一下国产性能测试工具,从中筛选出一款优秀的国产的性能测试工具kylinPET.查找该款工具的历史,好像有十年历史 ...
- Windows莫名内存到百分之百,需要修改虚拟内存
借鉴别人的操作: https://blog.csdn.net/xjpdf10/article/details/82849112