MongoDB(4)- Collection 集合相关

2021-06-01 21:36:32 浏览数 (1)

Collection

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

MongoDB 集合的命名规则

集合名称要求符合 UTF-8 标准的字符串

序号

注意事项

1

集合名不能是空串,如""

2

不能含有空字符 null

3

不能以 system. 开头,这是系统集合保留的前缀

4

不能包含 $

5

命名空间最大为 255 bytes

对于分别部署在 Windows、Linux、UNIX 系统上的 MongoDB,集合的命名方式与数据库命名方式一致

显示所有集合

代码语言:javascript复制
show collections

创建集合

MongoDB 集合的创建有显式和隐式两种方法

显示创建

使用 db.createCollection(name, options) 方法来实现

  • name:创建的集合名称
  • options:可选项,指定内存大小和索引等
代码语言:javascript复制
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 会在集合首次存储数据时自动创建新的集合
代码语言:javascript复制
db.myDB.insert( {"name": "tom"} )

文档验证

  • 默认情况下,集合不要求存储的所有文档具有相同的数据结构
  • 即单个集合中的不同文档不需要具有相同的字段集
  • 并且一个字段的数据类型可以在集合内的文档中不同
  • 总结: Bson 数据结构、字段都不需要必须一致
  • 从 MongoDB 3.2 开始,可以在 update 和 insert 操作期间为集合强制执行文档验证规则(后面再展开讲)

修改文档数据结构

如果要改集合中文档的结构,可以添加新字段、删除现有字段、修改字段类型(后面再展开讲)

UUID

  • 集合会被分配一个不可变的 UUID
  • 集合 UUID 在副本集的所有成员和分片集群中的分片保持不变
查看集合的 uuid
代码语言:javascript复制
>  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 还有蛮多方法的,后面用到再展开讲解哦

0 人点赞