mongodb簡介
Mongodb是一個機遇分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案
MongoDB是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。
MongoDB將數據存儲問一個文檔,數據結構由鍵值對組成。MongoDB文檔類似於JSON對象。字段值可以包含其他文檔,數組及文檔數組
引入NoSQL的意義
NoSQL(Not Only SQL),意義:不僅僅是SQL,NoSQL指的是非關係型數據庫,用於超大規模數據的存儲。這些類型的數據存儲不需要固定的模式,無需多餘操作就可以橫向擴展
從SQL的術語入手學習mongoDB的術語
SQL術語 | MongoDB術語 | 備註 |
---|---|---|
database | database | 數據庫 |
table | collection | 數據表,在mongodb中叫集合 |
row | document | 數據記錄行,在mongodb中叫文檔 |
column | field | 數據字段 |
index | index | 索引 |
table joins | document | 錶鏈接,mongodb不支持錶鏈接 |
primary key | primary key | 主鍵 |
SQL中的數據表如下
id | usernam | password |
---|---|---|
1 | 張三 | 123 |
2 | 李四 | 456 |
轉換爲mongodb則爲
{
"id":ObjectId("XXX"),
"username":"張三",
"password":123
}
{
"id":ObjectId("XXX"),
"username":"李四",
"password":456
}
數據庫,文檔,集合的概念
數據庫:一個mongodb中可以建立多個數據庫。
文檔:文檔是mongodb中的最核心的概念,是其核心單元,我們可以將文檔類比成關係型數據庫中的每一行數據。多個鍵及其關聯的值有序的放置在一起就是文檔。MongoDB使用了BSON這種結構來存儲數據和網絡數據交換。BSON數據可以理解爲在JSON的基礎上添加了一些json中沒有的數據類型。 BSON類似以前學過的JSON結構
集合:集合就是一組文檔的組合。如果將文檔類比成數據庫中的行,那麼集合就可以類比成數據庫的表。 在mongodb中的集合是無模式的,也就是說集合中存儲的文檔的結構可以是不同的
合法的集合名
集合名不能是空字符串”“。
集合名不能含有\0字符(空字符),這個字符表示集合名的結尾。
集合名不能以”system.”開頭,這是爲系統集合保留的前綴。
用戶創建的集合名字不能含有保留字符。有些驅動程序的確支持在集合名裏面包含,這是因爲某些系統生成的集合中包含該字符。除非你要訪問這種系統創建的集合,否則千萬不要在名字 裏出現$。
MongoDB的數據類型
SQL術語 | MongoDB術語 |
---|---|
String | 字符串,存儲數據常用的數據類型。在MongoDB中,UTF-8的字符串編碼纔是合法的 |
Integer | 整型數值,用於存儲數值,根據你選擇的服務器,可分爲32位或64位 |
Boolean | 布爾值 |
Double | 雙精度浮點值 |
Min/Max keys | 將一個值與BSON(二進制的JSON)元素的最低值和最高值相對比 |
Arrays | 用於將數組或列表或多個值存儲爲一個鍵。 |
Timestamp | 時間戳,記錄文檔修改或添加的的具體時間 |
Object | 用於內嵌文檔 |
Null | 用於創建空值 |
Symbol | 符號。該數據類型基本上等同於字符串類型,但不同的是,它一般用於採用特殊符號類型的語言 |
Date | 日期時間。用 UNIX 時間格式來存儲當前日期或時間。你可以指定自己的日期時間:創建 Date 對象,傳入年月日信息。 |
ObjectId | 對象 ID。用於創建文檔的 ID。 |
Binary Data | 二進制數據。用於存儲二進制數據。 |
Code | 代碼類型。用於在文檔中存儲 JavaScript 代碼 |
Regular expression | 正則表達式類型。用於存儲正則表達式。 |
以上爲今天學到的MongoDB的知識,後續繼續慢慢總結