mongodb DataBase与Collection

来源:互联网 发布:python创建元组 编辑:程序博客网 时间:2024/05/22 08:29

一、DataBase

1、使用与创建数据库

1)、使用数据库(在这里数据库名称统一用testdb)

use testdb

2)、创建数据库,mongodb数据库无需手动创建,如果指定使用的数据库不存在,那么在你插入一条数据时,mongodb会自动创建数据库,collection也是如此,如:

db.testcollection.insert({x:1})

这时会自动创建testdb和testcollection

3)命名规则

  • 大小写敏感;
  • 当mongodb安装在Windows上时,数据库名称不能包含这些字符:/\. "$*<>:|?以及null字符,安装在Unix或Linux上时,不能包含/\. "$及null字符;
  • 长度限制,不能为空并且不超过64个字符。

一、Collection

1、collection是mongodb存储文档的数据集合,与关系型数据库中的表类似

2、创建,如数据库的创建

3、命名规则

  • 应以下划线或字母开头,不可以:
    ○ 包含$
    ○ 空字符串
    ○ 为null
    ○ 以system.prefix开头

  • 如果collection名称包含特殊的字符串,如下划线或以数字开头

//创建与使用特殊collection db.getCollection("包含特殊字符的集合名称")//错误创建与使用 db.colllection名称

示例

  • 长度限制,collection名称+数据库名称+点号(.)的长度不得超过120个字节

4、显示创建collection

mongodb提供了显示创建collection的方法,以便通过用户指定参数创建有限制的collection,方法:

db.createCollection(name,options);db.createCollection(<name>, { capped: <boolean>,                              autoIndexId: <boolean>,                              size: <number>,                              max: <number>,                              storageEngine: <document>,                              validator: <document>,                              validationLevel: <string>,                              validationAction: <string>,                              indexOptionDefaults: <document>,                              viewOn: <string>,                              pipeline: <pipeline>,                              collation: <document> } )

options如下:

参数 值类型 解释 capped Boolean 可选,为true时,必须指定collection的属性size的大小 autoIndexId Boolean 可选,为false时,表示不会自动为_id创建索引,
3.2版本后不推荐使用,3.4版本后已移除。
注意:复制集不允许该属性为false size number 可选,指定capped为true的collection的最大字节数;
一旦collection达到指定最大字节数,mongodb会将旧文档移除,以腾出空间存放新文档;
该属性只对capped为true的collection起效 max number 可选,指定collection最大文档数,
当collection达到最大文档数时,mongodb会自动删除最早存入的文档,腾出空间保存新文档;
size属性的优先级比该属性高,即如果collection达到了size,但未达到max,
mongodb依然会删除旧文档,腾出空间保存新文档 storageEngine document 可选,只适用于WiredTiger存储引擎,这里不作解释,具体可参考官方文档 validator document 验证器,可选,指定在更新或插入文档时验证文档的规则或表达式,3.2及其以后可用。
注意:
1、只会在更新或插入时验证,已存在但未做更新操作的文档不会进行验证;
2、不能为admin、local、config数据库中collection添加验证器;
3、不能为system.*中的collection添加验证器. validationLevel string 验证级别,可选,在更新期间,指定MongoDB如何严格地将验证规则应用到现有文档中,3.2及以后版本可用;
1、“off”,不启用验证;
2、“strict”,默认级别,应用于所有的更新与插入,
3、“moderate”,应用于执行插入的有效文档或更新操作的已有有效文档,不应用于执行更新操作的已有无效文档 validationAction string 可选,指定对于验证不通过的文档是否以error方式处理,还是以warn方式警告但依然允许插入。
1、“error”,默认,插入或更新失败,不允许插入或更新;
2、“warn”,允许插入或更新,同时生成验证失败的日志记录,
3、validationLevel先于validationAction执行。 indexOptionDefaults document 可选,允许用户在创建集合时为索引指定一个默认的配置。
3.2及以后版本可用 viewOn string 源collection或view的名称,但不是完整的名称,不包含数据库名称,
完整名称如:dbname.collectionname,
3.4及以后版本可用 pipeline array 聚合管道,与聚合查询有关,具体在以后学习聚合查询时会回来解释 collation document 为collection指定一个针对不同语言的排序规则,3.4及以后版本可用。
collation: {
locale: <string>,
caseLevel:<boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate:<string>,
maxVariable: <string>,
backwards: <boolean>}
“locale”为必须项,其他为可选项,具体看collation文档;
1、如果没有明确为索引指定collation,默认使用collection的collation;2、;
3、collation只能在创建collection时指定,一旦指定,无法修改。

有效文档:可通过验证的文档;无效文档:不能验证成功的文档

https://docs.mongodb.com/manual/introduction/

这是我从6月5号开始学mongodb的笔记,有错欢迎在评论中指正。

原创粉丝点击