MongoDB學習(三)索引、備份、恢復和導入導出操作
來源:程序員人生 發布時間:2017-02-04 09:24:50 閱讀次數:4790次
(尊重勞動成果,轉載請注明出處:http://blog.csdn.NET/qq_25827845/article/details/54311235 冷血之心的博客)
MongoDB學習(1)簡介、安裝與啟動
MongoDB學習(2)經常使用操作
MongoDB學習(4)安全和認證、主從集群、副本集和分片操作
索引
索引就是用來加速查詢的。數據庫索引與書籍的索引類似:有了索引就不需要翻遍整本書,數據庫則可以直接在索引中查找,使得查找速度能提高幾個數量級。在索引中找到條目以后,就能夠直接跳轉到目標文檔的位置。
- 創建普通索引,使用命令 db.collection.ensureIndex({key:1})
- 創建唯1索引,使用命令 db.collection.ensureIndex({key:1},{unique:true})
- 查看關于索引的相干信息,使用命令 db.collection.stats()
- 查看查詢使用索引的情況,使用命令 db.collection.find({key:value}).explain()
- 刪除索引,使用命令 db.collection.dropIndex({key:1})
- 刪除集合,也會將集合中的索引全部刪除
explain工具
explain是非常有用的工具,會幫助你取得查詢方面諸多有用的信息。只要對游標調用該方法,就能夠得到查詢細節。explain會返回1個文檔,而不是游標本身。
如:
db.test.find().explain()
{
"cursor" : "BasicCursor",
"nscanned": 1,
"nscannedObjects": 1,
"n" : 1,
"millis": 0,
"nYields": 0,
"nChunkSkips": 0,
"isMultiKey": false,
"indexOnly": false,
"indexBounds": {
}
}
explain會返回查詢使用的索引情況,耗時和掃描文檔數的統計信息。
- "cursor":"BasicCursor"表示沒有使用索引。
- "nscanned":1 表示查詢了多少個文檔。
- "n":1 表示返回的文檔數量。
- "millis":0 表示全部查詢的耗時。
固定集合(capped collection)
固定集合指的是事前創建而且大小固定的集合 。
固定集合特性:
固定集合很像環形隊列,如果空間不足,最早的文檔就會被刪除,為新的文檔騰出空間。1般來講,固定集適合用于任何想要自動淘汰過期屬性的場景,沒有太多的操作限制。
創建固定集合使用命令:
db.createCollection(“collectionName”,{capped:true,size:100000,max:100});
size指定集合大小,單位為KB,max指定文檔的數量
當指定文檔數量上限時,必須同時指定大小。淘汰機制只有在容量還沒有滿時才會根據文檔數量來工作。要是容量滿了,淘汰機制會根據容量來工作。
備份(mongodump)和恢復(mongorestore)
MongoDB提供了備份和恢復的功能,分別是MongoDB下載目錄下的mongodump.exe和mongorestore.exe文件
備份數據使用下面的命令:
>mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在
服務器地址,例如:127.0.0.1,固然也能夠指定端口號:127.0.0.1:27017
-d:需要備份的
數據庫實例,例如:test
-o:備份的數據寄存位置,例如:c:\data\dump,固然該目錄需要提早建立,在備份完成后,系統自動在dump目錄下建立1個test目錄,這個目錄里面寄存該
數據庫實例的備份數據。
恢復數據使用下面的命令:
>mongorestore -h dbhost -d dbname -directoryperdb dbdirectory
-h:MongoDB所在
服務器地址
-d:需要恢復的
數據庫實例,例如:test,固然這個名稱也能夠和備份時候的不1樣,比如test2
-directoryperdb:備份數據所在位置,例如:c:\data\dump\test
導入(mongoimport)和導出(mongoexport)
導出數據可使用命令:
mongoexport -h dbhost -d dbname -c collectionName -o output
參數說明:
-h 數據庫地址
-d 指明使用的庫
-c 指明要導出的集合
-o 指明要導出的文件名
導入數據可使用命令:
mongoimport -h dbhost -d dbname -c collectionname output
參數說明:
-h
數據庫地址
-d 指明使用的庫
-c 指明要導入的集合
關于對MongoDB的高級操作總結就先到這里了,如果對你有幫助,記得點贊哦~歡迎大家關注我的博客,可以進群3665332581起交換學習哦~
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈