• MongoDB教程9-MongoDB创建集合


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

    MongoDB 集合的命名规则

    MongoDB 的集合就相当于 MySQL 的一个表 table,MySQL 列出的所有表都可以使用 show tables,MongoDB 可以使用 show collections 展示所有集合。

    集合是一组文档,是无模式的,集合名称要求符合 UTF-8 标准的字符串,同时要遵循下表所示的注意事项。

    MongoDB 集合命名的注意事项
    序号注意事项
    1 集合名不能是空串
    2 不能含有空字符
    3 不能以“system.”开头,这是系统集合保留的前缀
    4 集合名不能含保留字符“$”

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

    创建集合

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

    显式创建集合可通过使用db.createCollection(name, options)方法来实现,参数 name 指要创建的集合名称,options 是可选项,指定内存大小和索引等,下表描述 了 options 可使用的选项。

    options 可以使用的选项
    参数类型描述
    capped Boolean (可选)如果为 true,则启用封闭的集合。上限集合是固定大小的集合,它在达到其最大时自动覆盖其最旧的条目。如果指定 true,则还需要指定 size 参数
    size 数字 (可选)指定上限集合的最大大小(以字节为单位)。如果 capped 为 true,那么还需要指定此字段的值
    max 数字 (可选)指定上限集合中允许的最大文档数

    注意:在插入文档时,MongoDB 首先检查上限集合 size字段的大小,然后检查 max 字段。

    显式创建集合的一个例子:

    > use myDB
    switched to db myDB
    >
    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    >
    > db.createCollection("myColl")  // 在myDB数据库中创建集合 myColl
    { "ok" : 1 }

    在 MongoDB 中,当插入文档时,如果集合不存在,则 MongoDB 会隐式地自动创建集合,方法如下:

    > db.myColl2.insert({"name":"tom"})  // myColl2是集合名
    WriteResult({ "nInserted" : 1 })
    >
    > show collections    // 查看此时的所有集合
    myColl
    myColl2

    可以看到显示和隐式创建的集合...

    之前提到过创建的数据库如果没有值的时候使用show dbs不会显示, 现在myDB数据库中已经有集合了, 再次查看

    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    myDB    0.000GB

    下面是带有几个关键参数的 createCollection() 的用法:

    创建固定集合 myColl3,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。

    > db.createCollection("myColl3", {capped:true, size:6142800, max:10000})
    { "ok" : 1 }
    >
    > show collections
    myColl
    myColl2
    myColl3
  • 相关阅读:
    NDK中使用pthread多线程中自己写的一个BUG
    Android Native crash日志分析
    Android细笔记--DataStorage
    求二叉树第n层节点数
    对YUV数据进行裁剪
    Android XML中引用自定义内部类view的四个why
    Android细笔记--ContentProvider
    Android Log Tag含义
    189-RotaeArray
    二分查找法
  • 原文地址:https://www.cnblogs.com/no-celery/p/13601800.html
Copyright © 2020-2023  润新知