ポイント: MongoDBシェル(mongosh)は、MongoDBデータベースを管理するためのインタラクティブなコマンドラインインターフェースであり、データ操作や管理タスクを可能にします。主な機能には、構文のハイライト、インテリジェントなオートコンプリート、およびコンテキストヘルプが含まれます。このシェルはMongoDBサーバーのセットアップとともにインストールされ、Windows、Linux、Mac OSで動作します。
- MongoシェルからすべてのMongoDBクエリを実行します。
- 代替手段にはMongoDB CompassとNoSQLBoosterがあります。
この記事はMongoDBのデフォルトクライアントであるMongoDBシェル(mongosh)についてです。この記事では、以下について説明します:
MongoDBシェル環境について
MongoDBシェルとは?
MongoDBシェル、またはmongoshは、コマンドラインを介してMongoDBインスタンスと対話するためのインタラクティブなJavaScriptインターフェースです。このシェルはデータ操作、クエリのテスト、MongoDBデータベースインスタンスの管理操作(ローカルまたはリモートホスト上)に使用できます。MongoDBシェルはMongoDBデータベースサーバーのデフォルトクライアントです。これはコマンドラインインターフェース(CLI)で、すべての入力と出力はコンソールベースです。Mongoshは小さなデータセットを操作するための良いツールです。
MongoDBシェルの機能は?
MongoDBシェルの機能は常に進化しています。現在の主な機能は以下の通りです:
- MongoシェルからすべてのMongoDBクエリを実行します。
- データを操作し、管理操作を実行します。
- JavaScriptと関連APIを使用してコマンドを発行します。
- 上下矢印キーを使用してMongoシェルの前のコマンドを表示します。
- 入力と出力を色分けして読みやすくします。
- コマンドや演算子を思い出せない場合に役立つインテリジェントなオートコンプリート機能。
- 何が間違っているのか、コードのどこで問題が発生しているのかを明確に示すエラーメッセージ。
- ドキュメントにリンクするコンテキストヘルプ。
- 強力なスクリプト環境。
- 頻繁に使用するスクリプトをスニペットとして保存し、後で再利用できる機能。
MongoDBシェルのインストール
MongoDBシェルはMongoDBサーバーをインストールするときにインストールされます。MongoDBサーバーバイナリと同じ場所にインストールされます。別々にインストールしたい場合は、MongoDBダウンロードセンターを訪れ、必要なバージョンとパッケージを選択し、アーカイブをダウンロードし、ファイルシステム内の場所にコピーします。MongoシェルはWindows、Linux、Mac OSを含むすべての主要オペレーティングシステムで利用可能です。
- Windows
- Linux
- Mac OS
MongoDBシェルからデータベースに接続する方法
MongoDBをダウンロードしてインストールしたら、Mongoシェルを使用して稼働中のMongoDBサーバーに接続できます。注意:サーバーが起動している必要があります。シェルを通じて接続する前に、サーバーをCMDで起動できます。
net start MongoDB
次に、mongoコマンドを入力してシェルを実行します。
Mongo
今、あなたはMongoシェルにいます。必要であれば、コマンドプロンプトなしでmongoおよびmongodを実行できます。そのためには、インストール場所に移動し、mongodおよびmongoアプリケーションをダブルクリックします。上記と同じ結果が得られます。
MongoDBシェルで異なるポートを使用
上記のmongoコマンドは、MongoDBサーバーがデフォルトポートの27017で実行されている場合にのみ機能します。MongoDBサーバーが異なるポートで実行されている場合は、以下のようにコマンドで明示的に指定する必要があります:
mongo --port 28010
リモートMongoDBサーバーに接続する
上記のコマンドは、MongoDBサーバーがローカルホストで実行されている場合にのみ機能します。リモートサーバーに接続したい場合は、mongoコマンドで`–host`オプションを使用します。
mongo --host mongodb0.example.com --port 28010
基本的なMongoDBシェルコマンド
今、Mongoシェルで作業する時間です。まず、始めるのに役立つ基本的なmongoshコマンドを学びます。
現在選択されているデータベースを表示 - dbコマンド
dbコマンドを実行して、現在作業しているデータベースを表示します。
db
異なるデータベースに切り替える - useコマンド
use コマンドを実行して、異なるデータベースに切り替えます。データベースがない場合は、新しいデータベースを作成する方法を学んでください。
use company
MongoDBでコレクションを作成し、データを挿入する
次のMongoDBシェルコマンドを使用してコレクションを作成し、データを挿入できます:
- dbは現在使用しているデータベースを指します。
- employeeはコレクション名です。
- insertOneはコレクションにドキュメントを挿入するためのメソッドです。
db.employee.insertOne( { name: "mark" } );
コレクション内のデータを取得する - findメソッド
findメソッドを使用してコレクション内のデータを取得します。 forEach(printjson)メソッドは、JSON形式でそれらを印刷します。
db.employee.find().forEach(printjson)
全データベースを表示 - show dbsコマンド
show dbsコマンドを使用して全データベースを表示
show dbs
ヘルプオプションのリストを取得 - MongoDBヘルプコマンド
Mongoシェルで簡単に作業するための重要な基本MongoDBコマンドはヘルプコマンドです。ヘルプコマンドを実行して、Mongoシェルで利用可能なヘルプオプションのリストを取得します。
Help
現在のデータベースで実行できるMongoDBシェルコマンドの完全なリストを取得するには、db.help()を入力します。
今後のチュートリアルでさらにデータ操作コマンドを説明します。コマンドの完全なリストについては、公式のMongoシェルページを確認してください。
MongoDBシェルキーボードショートカット
知っておくべき重要なMongoDBシェルのキーボードショートカットが2つあります:
- 上矢印と下矢印を使用して、コマンドの履歴を行き来します。
- タブキーを押すと、可能なコマンドの完全なリストが表示されます。例えば、dと入力してタブを2回押すと、次の出力が得られます。
MongoDBシェルの欠点
MongoシェルはMongoDBサーバーを学び、テストするための優れたツールですが、運用環境での使用は難しいです。シェルであるため、特定の欠点を伴います。それらは以下の通りです:
- Mongoシェルは厳密にコンソール中心のデータ操作方法です。一部の人には簡単で迅速と感じられますが、他の人にはその特徴が魅力的ではないかもしれません。
- 複数のセッションで作業している場合、複数のターミナルが必要です。
- 結果が長すぎる場合、スクロールして消えてしまいます。
- 繰り返しのコマンドや関数のデバッグには、プログラマーが手動で長いコマンドライン履歴を移動する必要があります。
MongoDBシェルの代替手段
MongoDBシェルにはいくつかの欠点があることが分かりました。この時点で、他にどのようなオプションがあるかを知りたいかもしれません。MongoDBの開発者は、MongoDBをアプリケーションで使用する際にMongoDBデータベースに接続するための各プログラミング言語特有のドライバを導入しました。これらのドライバはこちらで見つけることができます。さらに、最近では多くの人々がデータベースを扱う際にGUIを使用することを好みます。MongoDBに最適なGUIツールの一つはMongoDB Compassです。他にも便利なGUIツールはあります:
最適なMongoDB GUIは達成すべきタスクによって異なることを覚えておいてください。MongoDB Compassはコマンドラインを完全に避ける必要がある場合の最適な選択です。Robo 3Tはシンプルで、コミュニティによって良くサポートされています。一方、NoSQLBoosterはシェル中心のスマートGUIツールです。それでは、チュートリアルの終わりに達しました。今、シェルを使って練習しましょう。
追加リソース
このようなチュートリアルをもっと見たい場合は、これらのリソースを探索してください:
MongoDBガイド
- MongoDB概要:MongoDBの始め方
- UbuntuおよびMacにMongoDBをインストールする方法
- MongoDBでデータベースを作成する
- MongoDBシェル基本コマンド
- MongoDB Compass:Mongo GUIの使用
- MongoDBロールベースのアクセス制御(RBAC)の説明
- MongoDBプロジェクションとプロジェクション演算子の説明
- MongoDB集約関数の説明
- MongoDBソート:sort()メソッドと例
- MongoDBでのPushとPull演算子の使用
- MongoDB $unwindの使い方
- 23の一般的なMongoDBクエリ演算子とその使用方法
- MongoDBジオロケーションクエリの例
- MongoDBトランザクションの紹介
- MongoDBインデックス:主なインデックスタイプとその管理方法
- 知っておくべきトップMongoDBコマンド
- MongoDBレプリケーション:完全な紹介
- MongoDBクラスターの設定方法
- MongoDBシャーディング:概念、例、チュートリアル
- MongoDB Atlas:マネージドMongoDBの設定と使用
- MongoDBをDockerコンテナとして実行する方法
- MongoDBメモリ使用量、管理、および要件
- MongoDBバックアップのためのmongodumpの使用方法
- MongoDBバックアップを復元するためのMongorestoreの例
- PyMongoの使用方法
- MongoDBおよびNodeJS用のMongooseの使用方法
- MongoDBチートシート
- MongoDB vs Cassandra:NoSQLデータベースの比較
- PostgreSQL vs MongoDB:データベースの比較
- MySQL vs MongoDB:データベースの比較
- MongoDB認定:紹介
これらの投稿は私自身の意見であり、BMCの立場、戦略、または意見を必ずしも代表するものではありません。