MongoDB是一個高性能,開源,無模式的文檔型數據庫,是目前在IT行業很是流行的一種非關係型數據庫(NoSql)。它在許多場景下可用於替代傳統的關係型數據庫或鍵/值存儲方式。Mongo使用C++開發。Mongo的官方網站地址是:http://www.mongodb.org/.MongoDB靈活的數據存儲方式備受當前IT從業人員的青睞。MongoDB很好的實現了面向對象的思想(OO思想),在Mongo DB中 每一條記錄都是一個Document對象。Mongo DB最大的優點在於全部的數據持久操做都無需開發人員手動編寫SQL語句,直接調用方法就能夠輕鬆的實現CRUD操做。算法
2015年3月3日,MongoDB 3.0 正式版本發佈!這標誌着 MongoDB 數據庫進入了一個全新的發展階段,提供強大、靈活並且易於管理的數據庫管理系統。MongoDB宣稱,3.0新版本不僅提高7到10倍的寫入效率以及增長80%的數據壓縮率,還能減小95%的運維成本。mongodb
mongoDB 3.0下載地址: mongoDB 3.0下載 shell
官方提供的mongoDB 3.0可下載的各個版本以下圖所示:數據庫
mongodb 3.0在Linux上的安裝步驟(主要是指在redhat/centos上的安裝過程)windows
1. 在redhat/centos配置mongodb 3.0的yum源.centos
在redhat/centos上創建一個yum源文件 /etc/yum.repos.d/mongodb-org-3.0.repo 並將如下信息添加到文件中,數組
1
2
3
4
5
|
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
|
2 安裝 mongoDB 3.0 和相關工具,執行以下安裝命令:緩存
1
|
sudo
yum
install
-y mongodb-org
//
安裝最新版mongodb
|
或安全
1
|
sudo
yum
install
-y mongodb-org-3.0.0 mongodb-org-server-3.0.0 mongodb-org-shell-3.0.0 mongodb-org-mongos-3.0.0 mongodb-org-tools-3.0.0
//
安裝mongodb 3.0
|
mongodb 3.0 在Windows上的安裝配置步驟:bash
1. 根據windows版本選擇下載相應的mongodb 3.0版本的msi文件。
2. 點擊下載mongodb 3.0版本的msi文件。
3. 雙擊下載的windows安裝文件mongodb-win32-x86_64-2008plus-ssl-3.0.0-signed.msi,直接安裝。
4. 安裝完成後,mongodb 3.0的默認安裝目錄爲C:\mongodb。
1)可插入式的存儲引擎 API
2)支持 WiredTiger 存儲引擎
3)MMAPv1 提高
4)複製集全面提高
5)集羣方面的改進
6)提高了安全性
7)工具的提高
MongoDB 3.0 在性能和擴展性方面都有很是巨大的提高,經過在存儲層的大幅改進實現。新版不只強化本來的MMAPv1儲存引擎,還內置WiredTiger存儲引擎以及能減小運維人員平常例行性工做的管理平臺(Ops Manager)。
WiredTiger 存儲引擎是一項難以置信的技術實現,提供無門閂、非堵塞算法來利用先進的硬件平臺(如大容量芯片緩存和線程化架構)來提高性能。經過 WiredTiger,MongoDB 3.0 實現了文檔級別的併發控制,所以大幅提高了大併發下的寫負載。
由於WiredTiger,MongoDB 3.0纔能有文檔級別的並行控制(Concurrency Control),即便處理頻繁寫入任務,數據庫依然能維持效能必定的穩定度和可預測性。另外,用戶能夠本身選擇儲存數據的壓縮比例,MongoDB 3.0提供最高達80%的壓縮率,不過壓縮率越高數據處理的時間成本也越多,用戶能夠自行權衡應用。
mongodb超級用戶相關命令:
use admin
#增長或修改用戶密碼
db.addUser(169it,'pwd')
#查看用戶列表
db.system.users.find()
#用戶認證
db.auth(169it,'pwd')
#刪除用戶
db.removeUser('mongodb')
#查看全部用戶
show users
#查看全部數據庫
show dbs
#查看全部的collection
show collections
#查看各collection的狀態
db.printCollectionStats()
#查看主從複製狀態
db.printReplicationInfo()
#修復數據庫
db.repairDatabase()
#設置記錄profiling,0=off 1=slow 2=all
db.setProfilingLevel(1)
#查看profiling
show profile
#拷貝數據庫
db.copyDatabase('mail_addr','mail_addr_tmp')
#刪除collection
db.mail_addr.drop()
#刪除當前的數據庫
db.dropDatabase()
mongodb客戶端鏈接命令:
/usr/local/mongodb/bin/mongo 8.8.88/ixigualib -u ixigua -p 'pwd'
mongodb增刪改命令:
#存儲嵌套的對象
db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]})
#存儲數組對象
db.user_addr.save({'Uid':'169it@sohu.com','Al':['test-1@sohu.com','test-2@sohu.com']})
#根據query條件修改,若是不存在則插入,容許修改多條記錄
db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true)
#刪除yy=5的記錄
db.foo.remove({'yy':5})
#刪除全部的記錄
db.foo.remove()
mongodb索引命令:
#增長索引:1(ascending),-1(descending)
db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true});
#索引子對象
db.user_addr.ensureIndex({'Al.Em': 1})
#查看索引信息
db.deliver_status.getIndexes()
db.deliver_status.getIndexKeys()
#根據索引名刪除索引
db.user_addr.dropIndex('Al.Em_1')
mongodb查詢命令:
#查找全部
db.foo.find()
#查找一條記錄
db.foo.findOne()
#根據條件檢索10條記錄
db.foo.find({'msg':'Hello 1'}).limit(10)
#sort排序
db.deliver_status.find({'From':'169it@sina.com'}).sort({'Dt',-1})
db.deliver_status.find().sort({'Ct':-1}).limit(1)
#count操做
db.user_addr.count()
#distinct操做
db.foo.distinct('msg')
#>操做
db.foo.find({"timestamp": {"$gte" : 2}})
#子對象的查找
db.foo.find({'address.city':'beijing'})
mongodb管理命令:
#查看collection數據的大小
db.deliver_status.dataSize()
#查看colleciont狀態
db.deliver_status.stats()
#查詢全部索引的大小
db.deliver_status.totalIndexSize()
#查看當前所使用的數據庫
db