本文原文連接: http://blog.csdn.net/freewebsys/article/details/45368809 轉載請注明出處!
MongoDB 3.0 正式版本發布!這標志著 MongoDB 數據庫進入了1個全新的發展階段,提供強大、靈活而且易于管理的數據庫管理系統。MongoDB宣稱,3.0新版本不只提升7到10倍的寫入效力和增加80%的數據緊縮率,還能減少95%的運維本錢。
MongoDB 3.0主要新特性包括:
?可插入式的存儲引擎 API
?支持 WiredTiger 存儲引擎
?MMAPv1 提升
?復制集全面提升
?集群方面的改進
?提升了安全性
?工具的提升
WiredTiger 存儲引擎是1項難以置信的技術實現,提供無門閂、非梗塞算法來利用先進的硬件平臺(如大容量芯片緩存和線程化架構)來提升性能。通過 WiredTiger,MongoDB 3.0 實現了文檔級別的并發控制,因此大幅提升了大并發下的寫負載。
MongoDB 提供了centos yum安裝方式。
參考:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/
pdf 手冊:
http://docs.mongodb.org/manual/MongoDB-manual.pdf
vi /etc/yum.repos.d/mongodb-org⑶.0.repo
[mongodb-org⑶.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
安裝mongodb
yum install -y mongodb-org
安裝了所有相干服務。
......
Running transaction
Installing : mongodb-org-shell-3.0.2-1.el7.x86_64 1/5
Installing : mongodb-org-tools-3.0.2-1.el7.x86_64 2/5
Installing : mongodb-org-mongos-3.0.2-1.el7.x86_64 3/5
Installing : mongodb-org-server-3.0.2-1.el7.x86_64 4/5
Installing : mongodb-org-3.0.2-1.el7.x86_64 5/5
Verifying : mongodb-org-3.0.2-1.el7.x86_64 1/5
Verifying : mongodb-org-server-3.0.2-1.el7.x86_64 2/5
Verifying : mongodb-org-mongos-3.0.2-1.el7.x86_64 3/5
Verifying : mongodb-org-tools-3.0.2-1.el7.x86_64 4/5
Verifying : mongodb-org-shell-3.0.2-1.el7.x86_64 5/5
配置文件在:/etc/mongod.conf
數據文件在:/var/lib/mongo
日志文件在:/var/log/mongodb
mongodb服務使用
#啟動
service mongod start
#停止
service mongod stop
#重啟
service mongod restart
#增加開機啟動
chkconfig mongod on
參考:
http://docs.mongodb.org/manual/core/crud-introduction/
連接到MongoDB,很簡單,履行mongo就能夠了。
# mongo
MongoDB shell version: 3.0.2
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
2015-04-29T18:03:17.544+0800 I STORAGE [initandlisten]
2015-04-29T18:03:17.544+0800 I STORAGE [initandlisten] ** WARNING: Readahead for /var/lib/mongo is set to 4096KB
2015-04-29T18:03:17.544+0800 I STORAGE [initandlisten] ** We suggest setting it to 256KB (512 sectors) or less
2015-04-29T18:03:17.544+0800 I STORAGE [initandlisten] ** http://dochub.mongodb.org/core/readahead
2015-04-29T18:03:17.679+0800 I CONTROL [initandlisten]
2015-04-29T18:03:17.679+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-04-29T18:03:17.679+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-04-29T18:03:17.679+0800 I CONTROL [initandlisten]
2015-04-29T18:03:17.679+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-04-29T18:03:17.679+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-04-29T18:03:17.679+0800 I CONTROL [initandlisten]
2015-04-29T18:03:17.679+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
2015-04-29T18:03:17.679+0800 I CONTROL [initandlisten]
>
http://docs.mongodb.org/manual/tutorial/insert-documents/
http://docs.mongodb.org/manual/reference/method/db.collection.insert/
> db.users.insert(
... {
... name:"zhang san",
... age:26,
... city:"bei jing"
... }
... )
WriteResult({ "nInserted" : 1 })
> db.users.insert(
... {
... _id:1,
... name:"zhang san",
... age:26,
... city:"bei jing"
... }
... )
WriteResult({ "nInserted" : 1 })
> db.users.insert(
... {
... _id:1,
... name:"zhang san",
... age:26,
... city:"bei jing"
... }
... )
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 11000,
"errmsg" : "E11000 duplicate key error index: test.users.$_id_ dup key: { : 1.0 }"
}
})
> db.users.insert(
... {
... _id:2,
... name:"li si",
... age:28,
... city:"shang hai"
... }
... )
WriteResult({ "nInserted" : 1 })
數據可以沒有主鍵_id,如果沒有,會自動生成1個。如果設置了_id主鍵,就必須不重復。
否則報主鍵沖突:“E11000 duplicate key error index: test.users.$_id_ dup key: { : 1.0 }”
http://docs.mongodb.org/manual/tutorial/modify-documents/
> db.users.update(
... {_id:2},
... {
... $set: {
... city:"guang zhou"
... }
... }
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.users.update(
... {_id:3},
... {
... $set: {
... city:"si chuan"
... }
... },
... { upsert: true }
... )
WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 3 })
更新使用update,如果增加{ upsert: true },則表示沒有查詢到數據直接插入。
http://docs.mongodb.org/manual/tutorial/remove-documents/
> db.users.remove({_id:3})
WriteResult({ "nRemoved" : 1 })
> db.users.remove({_id:4})
WriteResult({ "nRemoved" : 0 })
查詢到數據才進行刪除,并且返回刪除數量。
http://docs.mongodb.org/manual/tutorial/query-documents/
> db.users.find({age:{ $gt: 26}})
{ "_id" : 2, "name" : "li si", "age" : 28, "city" : "guang zhou" }
> db.users.find({age:{ $gt: 25}})
{ "_id" : ObjectId("5540adf29b0f52a6786de216"), "name" : "zhang san", "age" : 26, "city" : "bei jing" }
{ "_id" : 1, "name" : "zhang san", "age" : 26, "city" : "bei jing" }
{ "_id" : 2, "name" : "li si", "age" : 28, "city" : "guang zhou" }
#查詢全部數據
> db.users.find()
{ "_id" : ObjectId("5540adf29b0f52a6786de216"), "name" : "zhang san", "age" : 26, "city" : "bei jing" }
{ "_id" : 1, "name" : "zhang san", "age" : 26, "city" : "bei jing" }
{ "_id" : 2, "name" : "li si", "age" : 28, "city" : "guang zhou" }
db.collection.aggregate()
db.collection.count()
db.collection.copyTo()
db.collection.createIndex()
db.collection.getIndexStats()
db.collection.indexStats()
db.collection.dataSize()
db.collection.distinct()
db.collection.drop()
db.collection.dropIndex()
db.collection.dropIndexes()
db.collection.ensureIndex()
db.collection.explain()
db.collection.find()
db.collection.findAndModify()
db.collection.findOne()
db.collection.getIndexes()
db.collection.getShardDistribution()
db.collection.getShardVersion()
db.collection.group()
db.collection.insert()
db.collection.isCapped()
db.collection.mapReduce()
db.collection.reIndex()
db.collection.remove()
db.collection.renameCollection()
db.collection.save()
db.collection.stats()
db.collection.storageSize()
db.collection.totalSize()
db.collection.totalIndexSize()
db.collection.update()
db.collection.validate()
http://www.robomongo.org/
使用可視化工具,方便使用MongoDB管理。
首先要修改下端口和ip
vi /etc/mongod.conf
port=27017
dbpath=/var/lib/mongo
# location of pidfile
pidfilepath=/var/run/mongodb/mongod.pid
# Listen to local interface only. Comment out to listen on all interfaces.
bind_ip=192.168.1.36
然后重啟MongoDB
service mongod restart
接下來就能夠創建1個mongodb連接:
連接成功以后效果:
本文原文連接: http://blog.csdn.net/freewebsys/article/details/45368809 轉載請注明出處!
MongoDB 3.0操作起來還是很方便的。能高效的使用。
同時MongoDB擴大也很方便。接下來研究。
對應互聯網業務來講沒有復雜的join查詢。只尋求高效,快速訪問。
上一篇 軟件測試-理論常識篇