MongoDB(三):MongoDB概念解析

在上一篇文章中講解了如何安裝MongoDB,這篇文章中講解一些有關MongoDB的概念。正則表達式

無論咱們要學習什麼數據庫,都應該學習其中的基礎概念,在MongoDB中基本的概念是文檔、集合、數據庫,下面挨個介紹。數據庫

下面的表格將會幫助您更容易理解MongoDB中的一些概念:express

SQL術語/概念 MongoDB術語/概念 解釋/說明
database databaee 數據庫
table collection 數據庫表/集合
row document 數據記錄行/文檔
column field 數據字段/域
index index 索引
table joins   錶鏈接,MongoDB不支持
primary key primary key 主鍵,MongoDB自動將_id字段設置爲主鍵

1、數據庫數組

一個MongoDB中能夠創建多個數據庫。服務器

MongoDB的默認數據庫爲「db」,該數據庫存儲在data目錄中。數據結構

MongoDB的單個實例能夠容納多個獨立的數據庫,每個都有本身的集合和權限,不一樣的數據庫也放置在不一樣的文件中。學習

一、使用「show dbs」命令能夠顯示全部數據庫的列表,以下圖所示:編碼

二、執行「db」命令能夠顯示當前數據庫對象或集合,以下圖所示:spa

三、執行「use」命令,能夠鏈接到一個指定的數據庫。3d

例如:從當前的test數據庫切換到local數據庫,以下圖所示:

admin:從權限的角度來看,這是「root」數據庫。要是將一個用戶添加到這個數據庫,這個用戶自動繼承全部數據庫的權限。一些特定的服務器端的命令也只能從這個數據庫運行,好比列出全部的數據庫或者關閉服務器。

local:這個數據永遠不會被複制,能夠用來存儲限於本地單臺服務器的任意集合。

config:當MongoDB用於分片設置時,config數據庫在內部使用,用於保存分片的相關信息。

2、文檔

文檔是一組鍵值(key-value)對(即BSON)。MongoDB的文檔不須要設置相同的字段,而且相同的字段不須要相同的數據類型。這與關係型數據庫有很大的區別,也是MongoDB很是突出的特色。

一個簡單的文檔例子以下:

{"site":"www.baidu.com","name":"百度"}

RDBMS與MongoDB對應的術語:

須要注意的是:

一、文檔中的鍵/值對是有序的。

二、文檔中的值不只能夠是在雙引號裏面的字符串,還能夠是其餘幾種數據類型(甚至能夠是整個嵌入的文檔)。

三、MongoDB區分類型和大小寫。

四、MongoDB的文檔不能有重複的鍵。

五、文檔的鍵是字符串。除了少數例外狀況,鍵可使用任意的UTF-8字符。

文檔鍵命名規範:

一、鍵不能含有\0(空字符)。這個字符用來表示鍵的結尾。

二、.和$有特別的意義,只有在特定環境下才能使用。

三、如下劃線「_」開頭的鍵是保留的(不是嚴格要求的)。

3、集合

集合就是MongoDB文檔組,相似於RDBMS(即關係數據庫管理系統)中的表格。

集合存在於數據庫中,集合沒有固定的結構,這意味着你在對集合能夠插入不一樣格式和類型的數據,但一般狀況下咱們插入集合的數據都會有必定的關聯性。

好比,咱們能夠將如下不一樣數據結構的文檔插入到集合中:

{「site」:「www.baiduc.com」}

{「site」:「www.baiduc.com」,"name":"百度"}

{「site」:「www.baiduc.com」,"name":"百度","address":"北京"}

合法的集合命名

一、集合名不能是空字符串「」。

二、集合名不能含有\0字符(空字符),這個字符表示集合名的結尾。

三、集合名不能以「system」開頭,這是爲系統集合保留的前綴。

四、用戶建立的集合名字不能含有保留字符。有些驅動程序的確支持在集合名裏面包含,這是由於某些系統生成的集合中包含該字符。除非你要訪問這種系統建立的集合,不然千萬不要在集合名字裏面出現$。

MongoDB數據類型

數據類型

描述

String

字符串。存儲數據經常使用的數據類型。在 MongoDB 中,UTF-8 編碼的字符串纔是合法的。

Integer

整型數值。用於存儲數值。根據你所採用的服務器,可分爲 32 位或 64 位。

Boolean

布爾值。用於存儲布爾值(真/假)。

Double

雙精度浮點值。用於存儲浮點值。

Min/Max keys

將一個值與 BSON(二進制的 JSON)元素的最低值和最高值相對比。

Arrays

用於將數組或列表或多個值存儲爲一個鍵。

Timestamp

時間戳。記錄文檔修改或添加的具體時間。

Object

用於內嵌文檔。

Null

用於建立空值。

Symbol

符號。該數據類型基本上等同於字符串類型,但不一樣的是,它通常用於採用特殊符號類型的語言。

Object ID

對象 ID。用於建立文檔的 ID。建立文檔時默認自動建立

Binary Data

二進制數據。用於存儲二進制數據。

Code

代碼類型。用於在文檔中存儲 JavaScript 代碼。

Regular expression

正則表達式類型。用於存儲正則表達式。

Date

日期時間。用 UNIX 時間格式來存儲當前日期或時間。你能夠指定本身的日期時間:建立 Date 對象,傳入年月日信息。

相關文章
相關標籤/搜索