警告
次のドキュメントは、mongo
MongoDB Server のダウンロード に含まれる シェルに関連しています。新しいMongoDB Shell(mongosh
)の詳細については、 mongoshドキュメント を参照してください。
2 つの shell の違いを理解するには、「 mongo
Shell とmongosh
の比較 」を参照してください。
プロンプトをカスタマイズする
プロンプトの内容を変更するには、 mongo
shell で変数prompt
を設定します。 prompt
変数には文字列と JavaScript コードを保持できます。 prompt
が string を返す関数を持っている場合、 mongo
shell は各プロンプトに動的情報を表示できます。
.mongorc.jsファイルにプロンプトのロジックを追加して、 mongo
shell を起動するたびにプロンプトを設定できます。
操作数を表示するようにプロンプトをカスタマイズ
たとえば、現在のセッションで発行された操作の数を含むmongo
shell プロンプトを作成するには、 mongo
shell で次の変数を定義します。
cmdCount = 1; prompt = function() { return (cmdCount++) + "> "; }
その場合、プロンプトは次のようになります。
1> 2> 3>
データベースとホスト名を表示するようにプロンプトをカスタマイズ
<database>@<hostname>$
の形式でmongo
shell プロンプトを作成するには、次の変数を定義します。
host = db.serverStatus().host; prompt = function() { return db+"@"+host+"$ "; }
その場合、プロンプトは次のようになります。
test@myHost1$
時間とドキュメント数を表示するためのプロンプトのカスタマイズ
システムアップタイム とmongo
現在のデータベース内のドキュメント数を含む shell プロンプトを作成するには、prompt
mongo
shell で次の 変数を定義します。
prompt = function() { return "Uptime:"+db.serverStatus().uptime+" Documents:"+db.stats().objects+" > "; }
その場合、プロンプトは次のようになります。
Uptime:5897 Documents:6 >
シェルで外部エディターを使用するmongo
shell
mongo
shell を起動するEDITOR
前にmongo
環境変数を設定することで、 shell で独自のエディターを使用できます。
export EDITOR=vim mongo
mongo
shell で編集するには、次の例のようにedit <variable>
またはedit <function>
と入力して、指定されたエディターで編集できます。
関数
myFunction
を定義します。function myFunction () { } エディターを使用して関数を編集します。
edit myFunction コマンドにより
vim
編集セッションが開かれます。 編集が終了したら、保存してvim
編集セッションを終了します。mongo
shell で、myFunction
と入力すると、関数の定義が表示されます。myFunction 結果は、保存された編集からの変更になります。
function myFunction() { print("This was edited"); }
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;