1、文档是mongodb最核心的概念,本质上是一种类josn的bson格式的数据。
bson是一种类json的二进制格式数据,它可以理解为在json基础上添加了一些新的数据类型,包括日期、int32、int64等。
bson是由一组组键值对组成,它具有轻量性、可遍历性和高效性三个特征。可遍历性是mongodb将bson作为数据存储的主要原因。
2、使用mongodb文档时需要注意:
mongodb中写操作的原子性限制在文档级别,对文档的保存、修改、删除等都是原子操作。
单个文档占用的存储空间不能超过16mb
mongodb会尽量保持文档被插入时键值对的顺序。
3、文档键的命名需要注意:
_id是系统保留的关键字,他是默认的主键,该值在集合中必须唯一,且不可更改。
键不能包含<code>\0</code>或空字符,这个字符用于表示键的结尾。
不能用$开头。
不能包含<code>.</code>(点号)。
键是区分大小写的且不能重复的
4、集合
把一组相关的文档放在一起组成了集合,如果将mongodb的一个文档比喻成关系型数据库中的一行,那么一个集合就相当于一张表。
mongodb的集合是模式自由的,一个集合里的文档可以是各式各样的。
5、集合命名需要注意:
集合名不能是空字符串
集合名不能含有<code>\0</code>字符(空字符),该字符表示集合名的结尾。
集合名不能以<code>"system."</code>开头,此前缀是系统本身保留的。
集合名中不能包含<code>$</code>字符(注:可包含<code>.</code>)
6、数据库
多个文档组成集合,多个集合组成数据库。一个mongodb实例可以承载多个数据库,每个数据库都有独立的权限,在磁盘上,不同数据库也可放置在不同的文件夹中(启动时加directoryperdb选项)。
7、数据库命名注意:
不能是空字符串
不能以$开头
不能包含.(点号)和空字符串
数据库名字区分大小写(建议数据库名全部使用小写)
数据库名长度最多64字节
不能与系统保留的数据库名字相同,比如:admin\local\config
8、命名空间
把数据库名添加到集合名字前面,中间用点号连接,得到集合的完全限定名,就是命名空间,例如:jk.blog
需要说明的是点号可以出现在集合名字中,例如:jk.blog.posts、jk.blog.authors,可以将posts和authors集合看作是blog集合的子集合。
使用子集合可以使我们更好的组织数据,使数据的结构更加清晰明了。