zoukankan      html  css  js  c++  java
  • 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 还有蛮多方法的,后面用到再展开讲解哦

  • 相关阅读:
    2019.08.26 学习整理
    day28
    python-day25(正式学习)
    自闭的一天
    python-day18(正式学习)
    python-day17(正式学习)
    python-day16(正式学习)
    别点进来!!!
    python-day15(正式学习)
    python-day14(正式学习)
  • 原文地址:https://www.cnblogs.com/poloyy/p/14747814.html
Copyright © 2011-2022 走看看