小黃雞今日推薦>>>MongoDB篇
diligence redeems stupidity
(勤能補拙)
MongoDB常用指令基礎鞏固
1 .進入資料庫
use admin
2 .增加或修改密碼
db.addUser('xingoo','123')
db.addUser("xingoo","123",true) 參數分别為 使用者名、密碼、是否隻讀
3 .檢視使用者清單
db.system.users.find()
4 .使用者認證
db.auth('xingoo','123')
5 .删除使用者
db.removeUser('xingoo')
6 .檢視所有使用者
show users
7 .檢視所有資料庫
show dbs
8 .檢視所有的collection集合
show collections
9 .檢視各個collection的狀态
db.printCollectionStats()
10 .檢視主從複制狀态
db.printReplicationInfo()
11 .修複資料庫
db.repairDatabase()
12 .設定profiling,0:off 1:slow 2 all
db.setProfilingLevel(1)
13 .檢視profiling
show profiling
14 .拷貝資料庫
db.copyDatabase('xingootest','xingootest1')
db.copyDatabase("xingootest","temp","127.0.0.1")
15 .删除集合collection
db.xingootest.drop()
16 .删除目前資料庫
db.dropDatabase()
第二節MongoDB增删改指令
1 .存儲嵌套的對象
db.foo.save({'name':xingoo,'age':25,'address':{'city':'changchun','Province':'Jilin'}})
2 .存儲數組對象
db.foo.save({'name':xingoo,'age':25,'address':['Jilin Province','Liaoning Province']})
3 .根據query條件修改,如果不存在則插入,允許修改多條記錄
db.foo.update({'age':'25'},{'$set':{'name':'xingoo'}},upsert=true,multi=true)
4 .删除yy=5的記錄
db.foo.remove({'name':'xingoo'})
5 .删除所有的記錄
db.foo.remove()
第三節MongoDB索引相關系列
1 .增加索引:1 asc -1 desc
db.foo.ensureIndex({firstname:1,lastname:-1},{unieap:true})
2 .索引子對象(不懂)
db.foo.ensureIndex({'Al.Em':!})
3 .檢視索引資訊
db.foo.getIndexes()
db.foo.getIndexKeys()
4 .根據索引名删除索引(不懂)
db.foo.dropIndex('Al.Em_1')
第四節MongoDB應用原理
1 .MongoDB支援存儲過程嗎?如果支援的話,怎麼用?
MongoDB支援存儲過程,它是javascript寫的,儲存在db.system.js表中。
2 .如何了解MongoDB中的GridFS機制,MongoDB為何使用GridFS來存儲檔案?
3 .GridFS是一種将大型檔案存儲在MongoDB中的檔案規範。使用GridFS可以将大檔案分隔成多個小文檔存放,這樣我們能夠有效的儲存大文檔,而且解決了BSON對象有限制的問題。
4 .為什麼MongoDB的資料檔案很大?
MongoDB采用的預配置設定空間的方式來防止檔案碎片。
5 .如果一個分片(Shard)停止或很慢的時候,發起一個查詢會怎樣?
6 .如果一個分片停止了,除非查詢設定了“Partial”選項,否則查詢會傳回一個錯誤。如果一個分片響應很慢,MongoDB會等待它的響應。
7 .我怎麼檢視 Mongo 正在使用的連結?
db._adminCommand("connPoolStats");
8 .MongoDB要注意的問題
1.因為MongoDB是全索引的,是以它直接把索引放在記憶體中,是以最多支援2.5G的資料。如果是64位的會更多。
2.因為沒有恢複機制,是以要做好資料備份
3.因為預設監聽位址是127.0.0.1,是以要進行身份驗證,否則不夠安全;如果是自己使用,建議配置成localhost主機名
4.通過GetLastError確定變更。