非关型数据库之MongoDB
目錄
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博客
總結
以上是生活随笔為你收集整理的非关型数据库之MongoDB的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch:固定部分层参数,固定单个
- 下一篇: Ubunt 配置网络服务