(2) MongoDB基本概念及与关系型数据库的对照

MongoDB不是关系型数据库,因此也就没有了表,行等概念,但是有一些类似的概念,主要有 数据库(Database),集合(Collection),文档(Document),其中数据库跟关系型数据库的数据库是一个概念,集合相当于表,文档相当于行。下面分别来介绍这些概念。

1. 文档:

文档是MongoDB的核心概念,也是MongoDB种数据的基本单元。所谓文档就是多个键及其关联的值有序的放置在一起。如,

{"greeting":"Hello World!"}

在这个文档中,"greeting"是键,"Hello World!"是值

当然,绝大多数的文档包含多个键/值,比这个要复杂的多,如:

{"author":"Tian","Sex":"M","hobby":"MBK"}

甚至文档里面还包含文档。

1.1 文档的键的命名规则

1). 文档的键是字符串;

2). 键不能包含有\0(空字符),这个字符用来表示键的结尾;

3). $和.有特殊的含义,被保留了;

4). 以下划线"_"的键被保留了,虽然这个并不是严格的要求。

5). 文档的键不能重复

6). 区分大小写,如{"author":"tian"}和{"Author":"tian"}是不一样的

2. 集合

集合,指的是一组文档。

MongoDB的集合虽然类似于关系数据库的表,但是,集合是无模式的,不必像关系数据库的表那样,必须事先定义,并且结构固定。

我们可以将以下2个文档存到同一个集合中:

{"author":"tian"}

{"age":6}

这两个文档,键不一样,对应的值也不一样,甚至类型也不一样,而这在关系数据库中是不可想象的。

2.1 集合的命名

1). 集合名不能是空字符串""

2). 集合名不能含有\0(空字符),这个字符是集合名的结尾

3). 集合名不能以"system."开头,以"system."开头表示系统集合,如system.users这个集合保留数据库用户的信息,system.namespaces这个集合保存数据库所有集合的信息

4). 用户创建的集合名字不能含有保留字符$

2.2 子集合

我们可以通过"."字符分开的按命名空间划分的子集合来组织集合。如,一个带有博客功能的应用可能包含2个集合blog.authors和blog.posts,这样做的目的只是为了组织更好,事实上, 我们不一定存在blog这个集合的。

3. 数据库

多个集合组成数据库。一个MongoDB实例可以包含多个数据库,他们之间可以视为完全独立。

3.1 数据库命名

1). 不能是空字符串;

2). 不能含有空格、.、$、/、\、和\0;

3). 应全部小写;

4). 最多64字节;

5). 不能是保留的数据库名:admin,local,config

参考:MongoDB权威指南

原文地址:https://www.cnblogs.com/tian2010/p/2596459.html