explain() cursor方法允許觀察查詢系統執行的操作。這個方法對於分析高效查詢和決定如何使用索引進行查詢是十分有用的。這個方法檢測的是查詢的操作,而不是查詢執行時間。因為這個方法嘗試多個查詢計畫,它並不能準確的反映出查詢執行時間。
使用explain()方法,呼叫find()返回的指標的該方法即可。
例:在type欄位建立索引
db.testdata.ensureindex();
評估乙個在type欄位上的查詢。
db.testdata.find().explain()
結果如下:
,"server" : "tt:27017",
"filterset" : false
}cursor值為btreecursor表名查詢使用了索引。
查詢返回n=3條記錄。
為了返回這五條記錄,查詢掃瞄了nscanned=3條記錄,然後讀到了nscannedobjects=3條完整的記錄,如果沒有索引,將掃瞄所有記錄。
手動比較乙個使用多個欄位的查詢,可以聯合使用hint()和explain()方法。
例:評估使用不同欄位的索引
db.testdata.find().hint().explain();
結果:,
"server" : "tt:27017",
"filterset" : false
}db.testdata.find( ).hint( ).explain();
//這句話執行不成功,待解決
這些返回的統計結果忽略了使用各自的索引的執行的查詢。
注意:如果不適用hint()執行explain()方法,查詢優化器將重新評估查詢,並且在返回查詢統計之前執行多索引查詢。
更詳細的explain輸出,檢視explain-results。
MongoDB操作手冊CRUD更新update
修改記錄 mongodb提供了update 方法用於更新記錄。這個方法接受以下引數 乙個更新條件的json物件用於匹配記錄,乙個更新操作json物件用於宣告更新操作,和乙個選項json物件 宣告查詢條件,使用和查詢一樣的結構和語法。預設情況下,update 更新單條記錄,若要更新多條記錄,請使用mu...
MongoDB 操作手冊
通過mongo shell使用資料庫 crud操作 開啟mongo shell前確保mongodb正在執行 開啟windows終端 或命令提示符 cd進入mongodb安裝目錄 cd bin 我這裡是c program files mongodb server 4.2 cd c program fi...
Docker操作手冊
安裝 curl fssl sh sudo groupadd docker sudo gpasswd a docker登出 重新登陸 檢視映象 docker search 用互動方式建立並進入容器 docker run i t 映象id bin bash 再次進入容器docker start 容器id...