MongoDB是一跨平臺、面向文檔的數據庫。能夠實現高性能、高可用性,而且可以輕鬆擴展。是一個基於分佈式文件存儲的開源數據庫系統,在高負載的狀況下,添加更多的節點,能夠保證服務器性能。
MongoDB也是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。不採用關係模型主要是爲了得到更好的擴展性,MongoDB再也不有「行」(row)的概念,其運行方式主要基於兩個概念:集合(collection)與文檔(document)。mongodb
MongoDB的特色包括面向集合存儲、模式自由、豐富的查詢語句和多級索引、複製集機制、易於水平擴展、可插入存儲引擎、跨平臺多語言支持等。
MongoDB安裝簡單,提供了面向文檔存儲功能,操做起來比較容易。
MongoDB提供了複製、高可用性和自動分片功能。若是負載增長(須要更多的存儲空間和更強的處理能力),它能夠分佈在計算機網絡中的其餘節點上,這就是所謂的分片。
MongoDB支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。
MongoDB支持各類變成語言:Ruby、Python、Java、C++、PHP、C#等多種語言。shell
MongoDB能夠爲WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB主要適用領域有網站數據、分佈式場景、數據緩存和JSON文檔格式存儲。適合大數據量、高併發、弱事務的互聯網應用,其內置的水平擴展機制提供了幾百萬到十億級別的數據處理能力,能夠很好的知足Web2.0和移動互聯網應用數據存儲的要求。數據庫
SQL術語 | MongoDB術語 | 解釋/說明 |
---|---|---|
database | database | 數據庫 |
table | collection | 數據庫表/集合 |
row | document | 數據記錄行/文檔 |
column | field | 數據字段/域 |
index | index | 索引 |
table joins | 錶鏈接,MongoDB不支持 | |
primary key | primary key | 主鍵,MongoDB自動將_id字段設置爲主鍵 |
數據庫:一個MongoDB 實例能夠承載多個數據庫。它們之間能夠看做相互獨立,每一個數據庫都有獨立的權限控制。在磁盤上,不一樣的數據庫存放在不一樣的文件中。MongoDB 中存在如下系統數據庫。vim
集合:集合就是一組文檔,相似於關係數據庫中的表。集合是無模式的,集合中的文檔能夠是各式各樣的。在MongoDB中集合用collections表示,每一個
collection用一個名字標識,須要注意如下幾點:數組
名字不容許是空字符串""緩存
名字不能包含\0字符,由於它表示名字的結束安全
文檔:文檔是 MongoDB 中數據的基本單位,相似於關係數據庫中的行(可是比行復雜)。多個鍵及其關聯的值有序地放在一塊兒就構成了文檔。服務器
文檔中的鍵/值對是有序的。網絡
文檔中的值不只能夠是在雙引號裏面的字符串,還能夠是其餘幾種數據類型(甚至能夠是整個嵌入的文檔)。併發
MongoDB區分類型和大小寫。
MongoDB的文檔不能有重複的鍵。
1.配置YUM源倉庫
cd /etc/yum.repos.d/ vim mongodb-org.repo [mongodb-org] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
2.在線安裝MongoDB
yum install -y mongodb-org
3.修改配置文件
vim /etc/mongod.service 1 # mongod.conf 2 3 # for documentation of all options, see: 4 # http://docs.mongodb.org/manual/reference/configuration-options/ 5 6 # where to write logging data. 7 systemLog: 8 destination: file 9 logAppend: true //使用追加方式寫日誌 10 path: /var/log/mongodb/mongod.log //日誌文件路徑 11 12 # Where and how to store data. 13 storage: 14 dbPath: /var/lib/mongo //數據存儲目錄 15 journal: 16 enabled: true 17 # engine: 18 # mmapv1: 19 # wiredTiger: 20 21 # how the process runs 22 processManagement: 23 fork: true # fork and run in background後臺運行 24 pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile 25 timeZoneInfo: /usr/share/zoneinfo 26 27 # network interfaces 28 net: 29 port: 27017 //默認服務器端口號 30 bindIp: 0.0.0.0 //監聽地址 31 32 33 #security: 34 35 #operationProfiling: 36 37 #replication: 38
4.關閉防火牆和加強安全功能並開啓數據庫
systemctl stop firewalld.service setenforce 0 systemctl start mongod.service netstat -anpt | grep mongod tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 15252/mongod
5.進入數據庫並進行簡單的查看
mongo //進入數據庫 >db.version() //查看數據庫版本 >show dbs //查看全部庫 >db.getMongo() //查看當前數據庫機器的鏈接地址
在單臺服務器資源充分的狀況下,能夠使用多實例,以便充分使用服務器資源。操做以下:
cp -p /etc/mongod.conf /etc/mongod2.conf vim /etc/mongod2.conf ... path: /data/mongodb/mongod2.log dbPath: /data/mongodb/mongo ... port: 27018 ... mkdir -p /data/mongodb mkdir /data/mongodb/mongo //建立對應的數據存儲目錄 touch /data/mongodb/mongod2.log //建立日誌文件 chmod 777 mongod2.log
開啓mongodb2: #mongod -f /etc/mongod2.conf #mongo --port 27018 MongoDB shell version v3.6.6 ... > #netstat -ntap tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 15252/mongod tcp 0 0 0.0.0.0:27018 0.0.0.0:* LISTEN 3649/mongod