MongoDB(三):MongoDB概念解析


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

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

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

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

一、數據庫

一個MongoDB中可以建立多個數據庫。

MongoDB的默認數據庫為“db”,該數據庫存儲在data目錄中。

MongoDB的單個實例可以容納多個獨立的數據庫,每一個都有自己的集合和權限,不同的數據庫也放置在不同的文件中。

1、使用“show dbs”命令可以顯示所有數據庫的列表,如下圖所示:

2、執行“db”命令可以顯示當前數據庫對象或集合,如下圖所示:

3、執行“use”命令,可以連接到一個指定的數據庫。

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

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

local:這個數據永遠不會被復制,可以用來存儲限於本地單台服務器的任意集合。

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

二、文檔

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

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

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

RDBMS與MongoDB對應的術語:

需要注意的是:

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

2、文檔中的值不僅可以是在雙引號里面的字符串,還可以是其他幾種數據類型(甚至可以是整個嵌入的文檔)。

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

4、MongoDB的文檔不能有重復的鍵。

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

文檔鍵命名規范:

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

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

3、以下划線“_”開頭的鍵是保留的(不是嚴格要求的)。

三、集合

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

集合存在於數據庫中,集合沒有固定的結構,這意味着你在對集合可以插入不同格式和類型的數據,但通常情況下我們插入集合的數據都會有一定的關聯性。

比如,我們可以將以下不同數據結構的文檔插入到集合中:

{“site”:“www.baiduc.com”}

{“site”:“www.baiduc.com”,"name":"百度"}

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

合法的集合命名

1、集合名不能是空字符串“”。

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

3、集合名不能以“system”開頭,這是為系統集合保留的前綴。

4、用戶創建的集合名字不能含有保留字符。有些驅動程序的確支持在集合名里面包含,這是因為某些系統生成的集合中包含該字符。除非你要訪問這種系統創建的集合,否則千萬不要在集合名字里面出現$。

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 對象,傳入年月日信息。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM