mongo(二)Database and Collections
MongoDB存储BSON文档在集合中例如数据记录。集合则属于数据库。
数据库:
在MongoDB中,数据库包含大量的文档的集合。
在Mongo Shell中选择要使用的数据库,使用use dbname语句。
如果数据库不存在,MongoDB在第一次向那个数据库存储数据时创建它。像这样的,你可以
转换到一个不存在的数据库,在mongo shell中执行以下操作:
use myNewDB
db.myNewCollection.insertOne({x:1})
如果myNewDB数据库和myNewCollection集合都不存在,insertOne操作会同时创建myNewDB数
据库和myNewCollection集合。
Mongo中数据库命名规则:
(1)Monggo中数据库名称是大小写字线不敏感的。
(2)windows系统上运行的Mongo,数据库名称中不能包含这些字符:/\. “$*<>:|?
(3)unix和linux系统上运行的Mongo,数据库名称中不能包含这些字符:/\. “$
(4)数据库名称的长度不能大于64个字符
集合:
MongoDB将文档存储在集合中,Mongo中的集合就相当于关系型数据库中的表。
同样的,如果集合不存在,MongDB在第一次往集合中存储数据时创建。如:
db.myNewCollection.insertOne({x:1})
db.myNewCollection.createIndex({y:1})
如果要插入数据的集合和要创建索引的集合不存在,insertOne()和createIndex()操作就会创建各自的集合。
Mongo中集合命名规则:
集合名称需要以字母或者下划线开头,但不能出现以下情况:
(1)包含$
(2)空的字符串
(3)包含空格
(4)以system.开头(保留内部使用)。
集合命名空间(包含数据库名称,如database.collection)的最大长度为120字节。
可以通过Mongo提供的db.createCollection()方法创建含有可变选项的集合,如设置最大容量或者验证规则
。如果不指定这些选项,就没有必要显式的创建集合,因为默认情况下,第一次存入集合数据时会自动创建
集合。
文档验证:
默认情况下,集合不要求它的文档具有相同的模式。例如:单个集合中的文档不需要拥有同样的域集,并且
域的数据类型在一个集合中可以与其他文档完全不同。
但是,从Mongo3.2开始,在添加与修改集合操作时,可以强制添加文档验证规则。