(翻譯) MongoDB(20)配置 mongo Shell

自定義提示

你能夠經過在 mongo shell 中設置變量 prompt 來修改提示的內容. prompt 變量能夠保存字符串以及 JavaScript 代碼. 若是 prompt 包含返回字符串的函數, mongo 能夠在每一個提示中顯式動態信息.mongodb

你能夠在 .mongorc.js 文件中添加提示的邏輯以便在你每次啓動 mongo shell 的時候進行提示.shell

自定義提示去顯示操做的數量

例如, 建立一個在當前會話中顯示帶有操做執行數量的 mongo shell 提示, 在 mongo shell 中定義下面的變量:數據庫

cmdCount = 1;

prompt = function() {
    return (cmdCount++) + "> ";
}

而後提示將會相似如下內容:vim

1>
2>
3>

自定義提示顯示數據庫名和主機名

<database>@<hostname>$ 的形式建立 mongo shell 提示符, 定義如下變量:segmentfault

host = db.serverStatus().host;

prompt = function() {
    return db+"@"+host+"$ ";
}

而後提示將會相似如下內容:編輯器

test@myHost1$

自定義提示運行時間和文檔數量

建立包含系統運行時間和當前數據庫的文檔數量的 mongo shell 提示, 在 mongo shell 中定義下面的 prompt 變量:函數

prompt = function() {
    return "Uptime:"+db.serverStatus().uptime+" Documents:"+db.stats().objects+" > ";
}

而後提示將會相似如下內容:code

Uptime:5897 Documents:6 >

mongo shell 中使用外部編輯器

在啓動 mongo shell 以前, 你能夠設置 EDITOR 環境變量以便於在 mongo shell 中使用你本身的編輯器.server

export EDITOR=vim
mongo

進入 mongo shell, 你就能夠經過輸入 edit <variable> 或者 edit <function>, 使用指定的編輯器進行編輯, 以下所示:ip

  1. 定義一個函數 myFunction:

    function myFunction () { }
  2. 使用你的編輯器編輯函數:

    edit myFunction

    這個命令應該會打開 vim 編輯會話. 當編輯結束, 保存並對退出 vim 編輯會話.

  3. mongo shell, 輸入 myFunction 來查看定義的函數.

    myFunction

    結果應該是你保存編輯的修改:

    function myFunction() {
        print("This was edited");
    }

注意:
因爲 mongo shell 能夠在外部編輯器解釋編輯的代碼, 因此能夠修改函數中的代碼, 這個取決於 JavaScript 編譯器. 對於 mongo 能夠將1+1轉化爲2或者刪除評論. 實際的代碼僅僅影響代碼的外觀, 而且將根據所使用的JavaScript版本而變化, 但不會影響代碼的語義.

改變 mongo Shell 批處理大小

db.collection.find() 是從一個集合中檢索文檔的 JavaScript 方法. db.collection.find() 方法返回一個遊標到結果. 然而, 在 mongo shell, 若是返回的遊標沒有分配給使用 var 關鍵字定義的變量. 而後遊標會自動迭代20次, 以便輸出匹配查詢的前20個文檔. mongo shell 會提示 Type it 再迭代20次.

你能夠設置 DBQuery.shellBatchSize 屬性去改變默認值是20的文檔數量. 在下面的示例將其設置爲10:

DBQuery.shellBatchSize = 10;

下一章: https://segmentfault.com/a/11...
本文地址: https://docs.mongodb.com/manu...

相關文章
相關標籤/搜索