mongodb中基本的概念是文档、集合、数据库,下面我们挨个介绍。
数据库
与关系型数据库一样,MongoDB存在数据库的概念,一个MongoDB可以创建多个数据库。
我们可以使用show dbs查看所有的数据库;
使用db显示当前数据库名称;
使用use dbName进入dbName数据库,即使这个数据库并不存在。
C:\Users\Neal>mongo localhost:27017
MongoDB shell version: 3.0.1
connecting to: localhost:27017/test
> show dbs
local 0.078GB
> db
test
> use local
switched to db local
>
文档
文档(document)是mongodb中的最核心的概念,是其核心单元,我们可以将文档比作关系型数据库中的记录。
多个键及其关联的值有序的放置在一起就是文档。在mongodb中使用一种类json的bson存储数据。
bson数据可以理解为在json的基础上添加了一些json中没有的数据类型。
以下是json与bson之间数据类型的比较:
json
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
bson
- String : 这是最常用的数据类型来存储数据。在MongoDB中的字符串必须是有效的UTF-8。
- Integer : 这种类型是用来存储一个数值。整数可以是32位或64位,这取决于您的服务器。
- Boolean : 此类型用于存储一个布尔值 (true/ false) 。
- Double : 这种类型是用来存储浮点值。
- Min/ Max keys : 这种类型被用来对BSON元素的最低和最高值比较。
- Arrays : 使用此类型的数组或列表或多个值存储到一个键。
- Timestamp : 时间戳。这可以方便记录时的文件已被修改或添加。
- Object : 此数据类型用于嵌入式的文件。
- Null : 这种类型是用来存储一个Null值。
- Symbol : 此数据类型用于字符串相同,但它通常是保留给特定符号类型的语言使用。
- Date : 此数据类型用于存储当前日期或时间的UNIX时间格式。可以指定自己的日期和时间,日期和年,月,日到创建对象。
- Object ID : 此数据类型用于存储文档的ID。
- Binary data : 此数据类型用于存储二进制数据。
- Code : 此数据类型用于存储到文档中的JavaScript代码。
- Regular expression : 此数据类型用于存储正则表达式
下面是一个文档示例:
{ "Name" : "Neal", "Age" : 24 }
集合
集合就是文档的组合,关系型数据库中记录组成一张数据表,而在MongoDB中文档组成了集合(collection),我们可以通过show collections查看当前数据库的集合:
show collections
在mongodb中的集合是无模式的,也就是说集合中存储的文档的结构可以是不同的,比如下面的两个文档可以同时存入到一个集合中:
{ "Name" : "Neal", "Age" : 24 }
{ "Name" : "Harry", "Age" : 24 , "Gender" : "Male"}
MongDB与关系型数据库比较
以下表格准确的表现了MongoDB与关系型数据库的区别于联系:
RDBMS | MongoDB |
Database(数据库) | Database(数据库) |
Table(表) | Collection(集合) |
Record(记录) | Document(文档) |
Column(栏) | Key(键) |
Value(值) | Value(值) |