mongosh コンソールは行指向です。ただし、エディターを使用して複数行の関数を操作することもできます。次の 2 つのオプションがあります。
外部エディターの使用
mongosh edit コマンドは外部エディターで動作します。mongosh を実行する shell 内、または mongosh. 内から外部エディターを構成できます。
両方の場所でエディターが設定されている場合は、mongosh 内で設定されたエディターが優先されます。
mongosh 内でエディターを設定するには、config.set() コマンドを使用します。
config.set( "editor", "vi" )
その他の例については、外部エディターの設定を参照してください。
edit は次の 3 つの方法で使用できます。
新しい編集セッションを開始する
新しい編集セッションを開始するには、edit を単独で入力します。
edit
引数なしで編集セッションを開始すると、最後の編集内容が読み込まれた状態でエディターが開きます。コマンドの編集の例を参照してください。
変数を編集する
コンソール名前空間に引数が存在する場合は、edit を使用して更新できます。
var albums = [ ]; edit albums
変数
albumsは最初の行に設定されています。2 行目は外部エディターを開いて
albumsの値を編集します。
ステートメントを編集する
外部エディターでステートメントを編集するには、db.collection.insertMany(). などのステートメントを使用して edit を呼び出します。
edit db.digits.insertMany( [] )
db.music.insertMany( [] ) を編集して外部エディターを終了すると、mongosh コンソールは次のようになります。
prompt> db.digits.insertMany([{ "zero": 0 }, { "one": 1 }, { "two": 2 }])
外部エディターを終了すると、ステートメントがコンソールの入力行にコピーされ、実行できるようになります。自動的には実行されません。ステートメントを実行するには <enter> を押し、キャンセルするには <ctrl> + c を押します。
組み込みエディターの使用
.editor コマンドは、基本的な複数行編集機能を提供します。
エディターはコードを保存しません。組み込みエディターを閉じると、編集内容がグローバル スコープに読み込まれます。編集で関数またはコマンドを呼び出す場合、エディターを閉じるとそれらが実行されます。
組み込みエディターを起動するには、次の手順に従います。
.editor
終了して関数を実行するには、<ctrl> + d と入力します。
組み込みエディターの使用を参照してください。
例
外部エディターを設定する
mongosh を実行している shell で EDITOR 環境変数が設定されている場合、edit コマンドはそのエディターを使用します。
mongosh editor プロパティも設定されている場合、mongosh は代わりにそのプログラムを使用します。editor プロパティは EDITOR 環境変数をオーバーライドします。
EDITOR 環境変数の設定
mongosh を開始する前に環境変数を設定する必要があります。
bash または zsh に環境変数を設定します:
export EDITOR=vi
mongosh コンソールで edit を実行すると、vi エディターが開きます。
editor プロパティの設定
mongosh 内から nano をエディターとして設定するには、config.set() コマンドを使用します。
config.set( "editor", "nano" )
mongosh コンソールで edit を実行すると、nano エディターが開きます。
注意
mongosh は、設定されているプログラムを使用しようとします。less のようなプログラムが動作します。grep などの他のプログラムはクラッシュしたり、予期しない結果が生じる可能性があります。
コマンドの編集
編集セッションを開始するには、edit を使用します。現在のコンソール セッションでエディターがすでに使用されている場合、エディターは最後の編集を開きます。
次の文には構文エラーがあります。強調表示された行にカンマがありません。
// WARNING: This code contains an error db.users.insertMany( [ { "name": "Joey", "group": "sales" } { "name": "Marie", "group": "sales" }, { "name": "Elton", "group": "accounting" }, { "name": "Paola", "group": "marketing" } ] )
例を設定するには、次の手順に従います。
サンプルコードをコピーします。
編集セッションを開始するには、
editと入力します。サンプルコードをエディターに貼り付けます。
エディターを終了します。
enterを押します。
エディターを終了すると、サンプル コードがコマンド ラインにコピーされます。mongosh は、コードの実行時にエラーを返します。
サンプル コードを再読み込みするには、引数なしで edit を入力します。
// WARNING: This code contains an error db.users.insertMany([{ "name": "Joey", "group": "sales" } { "name": "Marie", "group": "sales" }, { "name": "Elton", "group": "accounting" }, { "name": "Paola", "group": "marketing" } ])
コードは編集しやすいように再フォーマットされています。この場合、強調表示された行にカンマがないため、ドキュメントの位置がずれてしまいます。
Visual Studio を外部エディターとして使用する
Visual Studio では、外部エディターとして機能するために特別なパラメーターが必要です。Visual Studio で --wait を使用します。
環境変数を設定します。
export EDITOR="/usr/local/bin/code --wait"
config.set() を使用してエディターを設定することもできます。Visual Studio が PATH にある場合は、mongosh を開いて次を実行します。
config.set("editor", "code --wait")
Visual Studio を使用する場合は、MongoDB VS Code 拡張機能 も使用できます。
外部エディターの設定を解除します
mongosh: の editor 変数を設定解除します。
config.set("editor", null)
EDITOR 環境が設定されている場合は、これも設定解除します。mongosh から、次を実行します:
process.env.EDITOR = ''
process.env を使用して EDITOR を設定解除した場合、mongosh を終了した後に変更は保持されません。変更を永続的にするには、shell から EDITOR を設定解除します。
組み込みエディターの使用
エディターを起動します。
.editor
mongosh は、エディターモードに入ります。コードを入力します。
// Entering editor mode (^D to finish, ^C to cancel) var albums = [ { "artist": "Beatles", "album": "Revolver" }, { "artist": "The Monkees", "album": "Head"} ] db.music.insertMany( albums )
エディターを終了するには、次の手順に従います。
<ctrl> + dを押して終了し、関数を実行します関数を実行せずに終了するには、
<ctrl> + cを押します
この例の albums のように、.editor を使用して宣言されたオブジェクトは、グローバル スコープに追加されます。.editor 終了後にご利用いただけます。