天天看點

面試題十期-MongDB常用指令鞏固學習以及加深實際應用原理

小黃雞今日推薦>>>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確定變更。