MongoDB簡單介紹及使用

一.Mongodb的簡單介紹
NoSQL簡介

  NoSQL(Not Only SQL ),意即“不僅僅是SQL” ,指的是非關係型的數據庫 。是一項全新的數據庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關係型的數據存儲,相對於鋪天蓋地的關係型數據庫運用,這一概念無疑是一種全新的思維的注入。
  關係型數據庫中的表都是存儲一些結構化的數據,每條記錄的字段的組成都一樣,即使不是每條記錄都需要所有的字段,但數據庫會爲每條數據分配所有的字段。而非關係型數據庫以鍵值對(key-value)存儲,它的結構不固定,每一條記錄可以有不一樣的鍵,每條記錄可以根據需要增加一些自己的鍵值對,這樣就不會侷限於固定的結構,可以減少一些時間和空間的開銷。

NoSql數據庫優缺點

在優勢方面主要體現在下面幾點:- 簡單的擴展
快速的讀寫
低廉的成本
靈活的數據模型

在不足方面主要有下面幾點:
不提供對SQL的支持
支持的特性不夠豐富
現有的產品不夠成熟

MongoDB簡介

MongoDB是用C++語言編寫的非關係型數據庫。特點是高性能、易部署、易使用,存儲數據十分方便,主要特性有:
面向集合存儲,易於存儲對象類型的數據
模式自由
支持動態查詢
支持完全索引,包含內部對象
支持複製和故障恢復
使用高效的二進制數據存儲,包括大型對象
文件存儲格式爲BSON(一種JSON的擴展)

MongoDB基本概念
文檔(document)是MongoDB中數據的基本單元,非常類似於關係型數據庫系統中的行(但是比行要複雜的多)。
集合(collection)就是一組文檔,如果說MongoDB中的文檔類似於關係型數據庫中的行,那麼集合就如同表。
MongoDB的單個計算機可以容納多個獨立的數據庫,每一個數據庫都有自己的集合和權限。
MongoDB自帶簡潔但功能強大的JavaScript shell,這個工具對於管理MongoDB實例和操作數據作用非常大。
每一個文檔都有一個特殊的鍵”_id”,它在文檔所處的集合中是唯一的,相當於關係數據庫中的表的主鍵。

二.mongodb的安裝和配置
安裝環境centos7

1.下載包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.12.tgz

2、解壓tar -zxvf mongodb-linux-x86_64-3.2.12.tgz

3、移動到指定位置mv mongodb-linux-x86_64-3.2.12/ /usr/local/mongodb

4、在/usr/local/mongodb下創建文件夾

存放數據 mkdir /data
存放日誌mkdir /logs

5、在/usr/local/mongodb/bin下新建配置vi mongodb.conf

dbpath = /usr/local/mongodb/data/db #數據文件存放目錄
logpath = /usr/local/mongodb/logs/mongodb.log #日誌文件存放目錄
port = 27017  #端口
fork = true  #以守護程序的方式啓用,即在後臺運行

bind_ip =127.0.0.1 #綁定ip
verbose = vvvvv 日誌級別,可以寫1個v,最多5個v,v越多越詳細

MongoDB簡單介紹及使用

mongod 爲服務端
mongo 爲客戶端

6、環境變量配置vim /etc/profile 
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
保存後,重啓系統配置source /etc/profile

7、啓動在/usr/local/mongodb/bin下mongod -f mongodb.conf 或 ./mongod -f mongodb.conf
啓動後查看
MongoDB簡單介紹及使用

8、關閉mongod -f ./mongodb.conf --shutdown  或./mongod -f ./mongodb.conf --shutdown

9..連接使用mongod
客戶端連接mongod服務,出現警告,安裝時最好不要用root用戶安裝,
使用admin用戶退出,並查看退出日誌
MongoDB簡單介紹及使用
MongoDB簡單介紹及使用

三.mongodb的基本使用增刪改查

1.創建庫和表
表是一個集合,裏面的數據是json格式的,前面的id是全局id,是不重複的
MongoDB簡單介紹及使用

2.數據的查找
find()
MongoDB簡單介紹及使用

使用for循環插入多條數據
MongoDB簡單介紹及使用

count()查詢數量
MongoDB簡單介紹及使用

條件查詢,skip跳過前三條,查詢2個,按id排序
MongoDB簡單介紹及使用

注:
在查詢的後面加上explain(),可以顯示查詢的詳細參數,包括索引,時間等信息

3.數據更新
update()
MongoDB簡單介紹及使用

更新多個字段數據的其中一個
MongoDB簡單介紹及使用
MongoDB簡單介紹及使用

複製一條空數據,有時候會出現還是空數據
MongoDB簡單介紹及使用

後面加上true,如果是空自動插入一條數據
MongoDB簡單介紹及使用

4.更新多條數據
MongoDB簡單介紹及使用
這樣只能更新一條
MongoDB簡單介紹及使用

使用{$set:{c:2}},false,true即可
MongoDB簡單介紹及使用

5.刪除數據
刪除爲了安全,必須給參數
MongoDB簡單介紹及使用

MongoDB簡單介紹及使用

刪除表
MongoDB簡單介紹及使用

四.mongostat工具

實時採集
MongoDB簡單介紹及使用

參數介紹
inserts 每秒插入數量
query 每秒查詢數量
update 每秒更新數量
delete 每秒刪除數量
getmore 查詢大數據的時候不能一次顯示完,每次獲取以後更多的數據
command 執行命令的數量
flushes 每秒虛擬映射的次數,每次內存數據刷到硬盤上
vsize 佔據內存大小
res
qr | qw 讀隊列和寫隊列,重要
ar | aw 當前客戶端活躍的數量
netIn 輸入流量
netOut 輸出流量
conn 當前的連接數量

五.mongoDB相關安全設置
1.創建用戶
角色類型:內建類型(read,readWrite,dbAdmin,dbOwner,userAdmin)
添加管理用戶(mongoDB 沒有無敵用戶root,只有能管理用戶的用戶 userAdminAnyDatabase)
MongoDB簡單介紹及使用

注:添加完用戶後可以使用show users或db.system.users.find()查看已有用戶
MongoDB簡單介紹及使用
use mydb

db.system.users.remove({user:"root"})
db.system.users.find()

2、添加完管理用戶後,關閉MongoDB,並使用權限方式再次開啓MongoDB,這裏注意不要使用kill直接去殺掉mongodb進程,(如果這樣做了,請去data/db目錄下刪除mongo.lock文件),可以使用db.shutdownServer()關閉

謹記:先在不開啓認證的情況下,創建用戶,之後關閉服務,然後再開啓認證,才生效。

開啓權限認證
vim mongodb.conf
auth = true

重新啓動
[root@server1 bin]# mongo 127.0.0.1:27017

查看日誌,認證開啓
MongoDB簡單介紹及使用

3.進入mongo shell,使用admin數據庫並進行驗證,如果不驗證,是做不了任何操作的。驗證之後還是做不了操作,因爲admin只有用戶管理權限,下面創建student用戶,用戶都跟着庫走。
[root@server1 bin]# mongo 127.0.0.1:27017
MongoDB簡單介紹及使用

4.使用創建的用戶student登錄進行數據庫操作
MongoDB簡單介紹及使用

5、刪除用戶
db.dropUser("user") 刪除指定用戶
db.dropAllUsers() 刪除當前數據下所有用戶

六.mongodb的備份恢復
1、MongoDB數據庫備份
mongodump -h dbhost -d dbname -o dbdirectory
參數說明:
-h: MongDB所在服務器地址,例如:127.0.0.1,當然也可以指定端口號:127.0.0.1:27017
-d: 需要備份的數據庫實例,例如:test
-o: 備份的數據存放位置,例如:/home/mongodump/,當然該目錄需要提前建立,這個目錄裏面存放該數據庫實例的備份數據。
實例:
MongoDB簡單介紹及使用

備份mydb庫
MongoDB簡單介紹及使用

刪除testdb表
MongoDB簡單介紹及使用

2、MongoDB數據庫恢復
mongorestore -h dbhost -d dbname --dir dbdirectory

參數或名:
h: MongoDB所在服務器地址
d: 需要恢復的數據庫實例,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2
-dir: 備份數據所在位置,例如:/home/mongodump/itcast/
-drop: 恢復的時候,先刪除當前數據,然後恢復備份的數據。就是說,恢復後,備份後添加修改的數據都會被刪除,慎用!
MongoDB簡單介紹及使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章