目錄
1 MongoDB簡介
1.1 初識MongoDB
1.2 MongoDB與傳統的關系型數據庫的區別
1.3 MongoDB存儲結構
1.4 BSON支持的數據類型
2? MongoDB Shell操作
3 MongoDB集群操作
1 MongoDB簡介
1.1 初識MongoDB
? ? ? ? MongoDB來源自英文單詞"Humongous”,譯為“龐大的”從中可見MongoDB的存儲容量不可謂小,MongoDB是一個開源的文檔數據庫,使用C++語言編寫。其中主要的功能特性為:面向集合存儲,易于存儲數據類型的數據,模式自由,支持動態查詢,支持完全索引,支持復制和故障恢復,使用高效的二進制數據存儲,文件存儲格式為BSON(JSON的一種二進制形式的存儲格式)。
1.2 MongoDB與傳統的關系型數據庫的區別
存儲結構 | 關型數據庫 | MongoDB |
數據庫 | database | database |
數據表/集合 | table | collection |
行/文檔 | row | document |
列/字段(屬性) | column | field |
主鍵 | primary key | primary key |
表連接 | table join | 不支持連接 |
嵌套關系 | 不支持嵌套 | 字段(屬性)可以嵌套其他文檔 |
關型數據庫 | MongoDB | |
存儲結構(從大到小) | 數據庫、表、行 | 數據庫、集合、文檔、鍵值對 |
結構類型 | 表結構需要預定義 | 文檔的結構是可變的 |
事務特性 | ACID | BASE |
ACID:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)
BASE:基本可用(Basically Available)、軟狀態(Soft-state)、最終一致性(Eventually Consistent)
1.3 MongoDB存儲結構
💥鍵值對
????????MongoDB存儲結構的基本結構單位是鍵值對,鍵的格式一般是字符串,值的格式可以是字符串、數值、文檔等,當值的格式是文檔時就是我們所說的嵌套鍵值對,其他都是基本鍵值對。鍵(Key)起到唯一索引的作用,區分大小寫;值(Value)是鍵所對應的數據,通過鍵來獲取其內容。
💥文檔
? ? ? ? 文檔是由多個鍵值對的有序集合,使用{ }符號進行包裹。鍵值對的順序確定一個文檔,也就是說就算兩個文檔的鍵值對內容完全一樣,但是鍵值對順序不一樣,依然是兩個文檔。一個文檔中的鍵重復時,后面的值覆蓋前面的。文檔必須有一個“_id”的鍵來唯一標識該文檔,自己創建或者默認生成。MongoDB中文檔之間的關系包括嵌入和引用兩種:
引用就是在一個文檔里引用另一個文檔里的值:
{
id: "joe",
name: "joe Bookreader"
}{
patron_id: "joe",
street: "123 Fake Street",
city: "Faketon",
state: "MA",
zip: "123456"
}
嵌入就是常說的嵌套鍵值對:
{
id: "joe",
name: "joe Bookreader"
address: {patron_id: "joe",street: "123 Fake Street",city: "Faketon",state: "MA",zip: "123456"}
}
💥集合
? ? ? ? 集合是由多個文檔構成的對象,許多文檔儲存在一個集合中。
💥數據庫
? ? ? ? 數據庫是由許多的集合組成。
1.4 BSON支持的數據類型
類型 | 描述 |
NULL | 空值或不存在的字段 {"x":null} |
Boolean | true和false {"x":true} |
String | BSON編碼是utf-8 {"x":"文檔數據庫"} |
Number | 數值(默認64位浮點數) {"x":3.14} |
Array | 數組 {"x":["a","b","c"]} |
Object | 內嵌文檔 {"x":{"y":4.23}} |
ObjectId | 文檔的唯一標識 {"x":ObjectId()} |
Binary Data | 二進制數據 |
JavaScript | 代碼 |
Date | 日期 {"x":new Date()} |
Timstamp | 時間戳? |
Regular Expression | 正則表達式 |
2? MongoDB Shell操作
參考博客:
?????c??????MongoDB Shell操作_扎哇太棗糕的博客-CSDN博客
3 MongoDB集群操作
參考博客:
MongoDB副本集、分片集的偽分布式部署(保姆級教程)_扎哇太棗糕的博客-CSDN博客