MongDB常用命令鞏固學習以及加深實際應用原理
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確保變更。