一、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及以后版本可用。
“locale”为必须项,其他为可选项,具体看collation文档; 1、如果没有明确为索引指定collation,默认使用collection的collation;2、; 3、collation只能在创建collection时指定,一旦指定,无法修改。 |
有效文档:可通过验证的文档;无效文档:不能验证成功的文档
这是我从6月5号开始学mongodb的笔记,有错欢迎在评论中指正。