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(值)