ポイント: MongoDBでデータベースを作成するには、「use」コマンドを利用し、データの挿入時にデータベースが生成され、スキーマレスな構造を反映します。このガイドでは、インストール、Mongoシェルへのアクセス、グラフィカルなデータベース管理のためのMongoDB Compassの使用について説明します。
- MongoDBはデータストレージにテーブルの代わりにコレクションを使用します。
- データベースは、データが保存されたときに初めて生成されます。
MongoDBはNoSQLデータベースです。つまり、MongoDBでの作業方法はMySQLのようなリレーショナルデータベースとは異なります。RDBMSの背景を持っている場合、このトピックにはかなり快適に感じるでしょう。
驚くべきことに、MongoDBにはSQLのようにデータベースを作成するための「create database」操作がありません。したがって、この記事ではMongoDBでのデータベースの作業方法を探ってみましょう。
まだMongoDBをインストールしていない場合は、まずそれを行いましょう。お使いのOSに適したMongoDBパッケージをダウンロードしてください。お使いのOSに互換性のあるmsi/zipファイルをダウンロードしてアプリケーションをインストールします。(インストールプロセスを詳細に説明するつもりはありませんが、簡単です。)
今、あなたはMongoDBデータベースを正常にインストールしたと仮定します。CMDを開いてmongod --version と入力して、インストールを確認してください。下の画像の結果のような出力が得られれば、すべてが完璧です。
Mongoシェルへのアクセス
MongoDBをインストールすると、MongoシェルというCLIツールが一緒にインストールされます。これを使用してMySQLサーバーにコマンドを送信できます。mongoシェルにアクセスするには、次のコマンドでサーバーを起動する必要があります:
net start MongoDB
この出力が表示された場合、MongoDBサーバーは正常に起動しました:
次に、MongoDBシェルを実行する必要があります。それを行うには、CMDにmongoと入力します。
これでMongoDBシェルに入ります。ここでコマンドを実行できます:
- データベースを作成する
- データを挿入する
- データベースからデータを編集および削除する
- 管理コマンドを発行する
Mongoデータベースの作成
前述のように、MongoDBには「create database」コマンドはありません。しかし、データベースを作成する方法がないわけではありません。もちろん方法はあります。シェルを使用して「Company」というデータベースを作成することで見てみましょう。
MongoDBには「use」というキーワードがあり、指定されたデータベースに切り替えるために使用されます。たとえば、既存のデータベース「Employee」に接続したい場合、「use Employee」コマンドを使用して接続できます。しかし、Employeeというデータベースが存在しない場合、「use」コマンドはそれを作成し、接続します。「use」コマンドを使用してデータベースを作成してみましょう。
use Company
コマンドを使用すると、次の出力が表示されます:
Mongoはcompanyデータベースを作成し、接続しました。現在接続されているデータベースを表示するために、db コマンドを使用できます。
新しいデータベースを作成する前に、すべての既存のデータベースを確認したい場合は、show dbsコマンドで確認できます。次の結果が表示されます:
MongoDBのインストール
MongoDBをインストールすると、3つのデフォルトデータベースが作成されます:
- Admin
- Config
- Local
驚くべきことに、先ほど作成したデータベースは表示されません。これは、MongoDBは値を保存するまでデータベースを真に作成しないためです。
NoSQLデータベースの重要な機能の1つは、スキーマレスであることです。スキーマはありません。つまり、SQLのようにデータベース/テーブルの構造を指定する必要はありません。SQLのテーブルと行の代わりに、MongoDBにはコレクションとドキュメントがあります。では、MongoDBにおけるコレクションの作業方法を見てみましょう。
MongoDBにおけるコレクションの使用
SQLでは、カラムと指定されたデータ型を持つ明確な構造を持ったテーブルがあります。レコードとしてテーブルにデータを挿入します。挿入する各レコードは、テーブルで定義されたすべてのカラムに対して値(null値を含む)を持っている必要があります。
対照的に、NoSQLではテーブルの代わりにコレクションがあります。これらのコレクションには構造がなく、ドキュメントとしてデータをコレクションに挿入します。つまり、1つのドキュメントは別のドキュメントと完全に異なることができます。コレクション「Employee」を作成し、ドキュメントを追加してみましょう。
コレクションを作成する前に、JSON形式でドキュメントにデータを追加します。したがって、データベースに1つのドキュメントを挿入するコマンドは次のようになります:
db.Employee.insert(
{
"Employeename" : "Chris",
"EmployeeDepartment" : "Sales"
}
)
挿入が成功すると、次のように返されますWriteResult({ "nInserted" : 1 }):
まず、「use」コマンドを使用してデータベースに切り替え、値を追加します。次にuse db.Employee.insertコマンドを使用してデータベースにドキュメントを追加します:
- Dbは現在接続されているデータベースを指します。
- Employeeは会社のデータベースに新しく作成されたコレクションです。
このクエリで確認できる重要な問題は、プライマリキーを設定していないことです。MongoDBは自動的に「_id」というプライマリキーフィールドを作成し、デフォルト値を設定します。これを確認するために、先ほど作成したコレクションを表示してみましょう。JSON形式でコレクションにアクセスするために次のコマンドを実行します。
db.Employee.find().forEach(printjson)
次の出力が表示されます:
MongoDBでは、任意のフィールドをプライマリキーとして設定することはできません。しかし、デフォルトのプライマリキーの値を変更することはできます。これに伴い、_idの値も指定して別のドキュメントを追加します。
db.Employee.insert(
{
"_id" : 1,
"EmployeeName" : "Mark",
"EmployeeDepartment" : "Marketing"
}
)
素晴らしい。これでプライマリキーの使い方もわかりました。では、元のトピックに戻りましょう。データベースは作成されましたか?再度、次のコマンドを実行して確認しましょう。
show dbs
今、データベース「company」が結果に表示されます:うまくいきました!
データベースの削除
この意味のないデータベースをサーバーに残しておくのは良くありません。したがって、データベースを削除する方法を学ぶ良い機会です。削除したいデータベースを削除するには、まず「use」キーワードを使用して接続する必要があります。
use Company
次に、db.dropDatabase()と入力してサーバーからデータベースを削除します。
再度show dbsコマンドを実行して確認します。
MongoDB Compassの使用
これで私たちのチュートリアルは終了です。MongoDBデータベースを作成し、削除しました。しかし、もう1つのことについて話したいと思います。MongoシェルはMongoDBサーバーで作業するための素晴らしいツールですが、多くの人が特に本番環境ではそれを難しく感じます。
だからこそ、MongoDBで作業するための優れたGUIであるMongoDB Compassツールに慣れることをお勧めします。ここでは、Compass GUIでデータベースを作成する方法をお見せします。 お使いのオペレーティングシステムに応じてCompass IDEをダウンロードできます。再度、インストールプロセスは非常に簡単です。
今、アプリケーションを開いて、以前にインストールしたMySQLサーバーに接続してください。
「接続フィールドを個別に入力してください。」に進みます。次の画面に移動します。MongoDBをインストールしたときにデフォルト値を使用した場合は、CONNECTボタンをクリックするだけで済みます。
今、MongoDBサーバーで使用可能なデータベースのリストが表示されます。
新しいデータベースを作成するには、データベース作成ボタンをクリックします。次に、データベース名とコレクション名を指定します:
Mongoシェルとは異なり、Compassはデータを追加せずにデータベースを作成します:
Mongoシェルでも確認できます:
CompassはMongoDBデータベースで作業するための非常に直感的なインターフェースを持っています。大規模なアプリケーションを開発しているときに多くの時間を節約します。ただし、Mongoシェルを使用して、それをしっかり把握することをお勧めします。
次回のMongoDBチュートリアルでお会いしましょう。
追加のリソース
このようなチュートリアルをさらに探るには、これらのリソースを参照してください:
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の立場、戦略、または意見を代表するものではありません。