1、什麼是MongoDBphp
MongoDB是由C++編寫的,是一個基於分佈式文件存儲的開源數據庫系統python
在高負載的狀況下,添加更多的節點,能夠保證服務器的性能mysql
MongoDB爲web應用提供可擴展的高性能數據存儲解決方案c++
2、MongoDB特色 web
一、MongoDB提供了一個面向文檔存儲,基本思路是將原來的「行」的概念換成了更加領過的「文檔」模型,一條記錄能夠表示很是複雜的層次關係
二、MongoDB支持豐富的查詢表達式,查詢指令是json形式的標記,能夠輕易查詢文檔中嵌套的對象和列表
三、很是容易擴展,擴展集羣后還能夠實現集羣中的數據的負載均衡。
四、MongoDB支持各類編程語言,好比python、Java、c++、c、php、c#、ruby、JavaScript等
五、豐富的功能,包括索引、存儲JavaScript、聚合、固定集合、文件存儲等功能
六、方便管理,處理啓動數據庫服務之外,記過沒有其餘什麼必要的操做。管理集羣只須要知道有哪一個新增的節點便可,自動繼承和配置新節點sql
3、MongoDB概念數據庫
在MongoDB中的基本概念是文檔、集合、數據庫編程
數據庫:json
* 一個MongoDB能夠創建多個數據庫c#
* MongoDB的默認數據庫是‘db’,該數據庫在data目錄
* MongoDB的單個實例能夠容納多個獨立數據庫,每個數據庫都有本身集合和權限,不一樣數據庫放在不一樣的文件中
數據庫命名規則:
數據庫名能夠是能夠知足如下條件的任意UTF-8字符串
- 不能是空字符串(「」)
- 不得含有‘ ’(空格)、$、/、\和\0.
- 應該所有小寫
- 最多64字節
有一些數據庫名是保留的,能夠直接訪問這些有特殊做用的數據庫。
admin:從權限的角度看,這個是'root'數據庫。要是將一個用戶添加到這個數據庫,這個用戶自動繼承全部的數據庫的權限。一些特定的服務器命令也只能從這個數據庫運行,好比列出全部的數據庫或者關閉數據庫。
local:這個數據永遠不會被複制,能夠用來存儲限於本地單臺服務器的任意集合
config:當MongoDB用於分片設置時,config數據庫在內部使用,用於存儲分片的相關信息。
文檔:
文檔至關於Mysql的數據行。文檔是一組鍵值對(BSON)。MongoDB的文檔不須要設置相同的字段,而且相同字段不須要相同的數據類型
例如:{"name":"月光男神", "age":"18"}
注意:
一、文檔中的鍵值對是有序的
二、文檔中的值不只能夠是在雙引號的字符串,還能夠是其餘數據類型
三、MongoDB區分類型和大小寫
四、MongoDB的文檔不能有重複的鍵
五、文檔的鍵是字符串,除了少數例外狀況,鍵可使用任意UTF-8字符
文檔鍵命名規範:
一、鍵不能含有\0(空字符)。這個字符用來表示鍵的結尾
二、.和$有特別的意義,只有在特定環境下才能使用
三、以"_"開頭的鍵是保留的
集合
集合至關於mysql中的表,集合存在於數據庫中,集合沒有固定結構,能夠插入不一樣類型和格式的數據。
集合命名規範:
集合名不能是空字符串。
集合名不能含有\0字符(空字符),這個字符集表示集合名的結尾。
集合名不能以「system」開頭,這是爲系統集合保留的前綴
用戶建立的集合的名字不能含有保留字符。千萬不要出現$。