说明:英文原文地址:https://docs.mongodb.com/v3.2/core/databases-and-collections/。
本文档属个人翻译,作个人学习之用,如有雷同,纯属巧合。如有不正确之处,欢迎指正。
数据库和集合
MongoDB存储BSON文档,即数据记录存储在集合中,集合存储在数据库中。
数据库
MongoDB中,数据库保存文档的集合。
要选择使用的数据库,在mongo
shell中,使用use <db>
语句,如下:
use myDB
创建数据库
如果数据库不存在,当第一次在该数据库中存储数据的时候,MongoDB服务器会创建它。这样的话,你可以切换到一个不存在的数据库,在mongo
shell中执行如下操作:
use myNewDB
db.myNewCollection1.insert( { x: 1 } )
insert()
操作创建了数据库myNewDB
和集合myNewCollection
,如果它们不存在的话。
关于数据库命名的限制,查看命名限制。
文档
MongoDB把文档存储在集合中。集合类似于关系数据库中的表。
创建集合
如果集合不存在,当第一次在集合存储数据的时候,MongoDB会创建它。
db.myNewCollection2.insert( { x: 1 } )
db.myNewCollection3.createIndex( { y: 1 } )
如果集合不存在的话,insert()
和createIndex()
操作都会创建相应的集合。
关于数据库命名的限制,查看命名限制。
显式创建
MongoDB提供了db.createCollection()
方法来显式创建一个集合,还可以有各种选项,如设置最大大小或者文档验证规则。如果你不指定这些选项,没必要显式创建集合,因为MongoDB会在第一次存储数据到集合的时候创建该集合。
要修改这些集合选项,参考collMod。
文档验证
3.2版本新增
默认情况下,一个集合不需要其中的文档都有相同的模式,也就是说,一个集合中的文档不必要有相同的字段组合,不同文档中的数据类型也可以不同。
从MongoDB 3.2开始,在更新和插入操作中,你可以强制执行文档验证规则。参考文档验证查看更多细节。
修改文档结构
要改变集合中文档的结构,如新增字段、移除已存在的字段,或者把修改字段值的类型,直接更新文档到新的结构即可。