MongoDBはオープンソースのNoSQLデータベースです。つまり、リレーショナルデータベースとは異なり、テーブル形式の入力値を受け入れません。 MongoDBはドキュメント指向のデータベースであるため、データはコレクションとドキュメントに保存されます。 SQLテーブルの行は、MongoDBのドキュメントに置き換えられました。
この記事は、MongoDBサーバーがコンピューターに既にインストールされており、サーバーにシェルが接続されていることを前提としています。すでに行っている場合は、MongoDBのいくつかの機能を調べることができますが、最初にいくつかの用語を調べます。そうでない場合は、UbuntuにMongoDBをインストールする方法に関する記事を確認できます。
- データベース– これは、コレクションのセットを保持する物理コンテナです。 0個以上のコレクションが含まれている場合があります。複数のデータベースをホストできるため、単一のサーバーインスタンスでホストできるデータベースの数に制限はありません。その唯一の制限は、基盤となるオペレーティングシステムが割り当てることができる仮想メモリアドレス空間です。
- コレクション– リレーショナルデータベースシステムの「テーブル」に似たMongoDBドキュメントのセット。コレクションには、類似または関連する目的のドキュメントが含まれています。コレクションにはスキーマがありません。つまり、同じコレクション内のドキュメントに異なるフィールドを含めることができます。
- ドキュメント– これは、MongoDBにデータを保存するための基本単位です。これらは、従来のリレーショナルデータベースシステムのROWに類似しています。ドキュメントは、キーと値のペアの順序セットです。つまり、すべてのキーに関連付けられた値があります。それらはしばしば「オブジェクト」と呼ばれます。それらはJSONのような(キーと値のペア)形式で表されます。データは、BSONと呼ばれるJSONのようなデータのバイナリ表現で保存およびクエリされます。この形式の例を以下に示します。
{
Student_enroll: “foss123”,
grade: ‘B’
}
- フィールド– これは、リレーショナルデータベースの列に相当します。キーと値のペアの値に関連付けて保存されます。コレクション内のドキュメントには、0個以上のフィールドを含めることができます。
- _id – これは、すべてのMongoDBドキュメントの必須フィールドです。ユーザーが_idフィールドなしでドキュメントを作成すると、MongoDBは自動的にフィールドを作成します。 _IDは、コレクション内の一意のドキュメントを表すために使用されます。これらはドキュメントの主キーとして機能します。
MongoDBデータベースの作成
MongoDBでのデータベースの作成は、データベースを使用しようとすると暗黙的に行われます。データベースを作成するには、mongoシェルに次のように入力します;
> use fossDB
出力:
注: Mongoシェルを開くには、次のコマンドを実行します。
mongo
MongoDBはまず、fossDBという名前のデータベースが存在するかどうかを確認します。そうでない場合は、使用する新しいものを作成します。その後、MongoシェルはfossDBに切り替わります。これは、特に指定がない限り、作成、更新、または読み取られるすべてのコレクションとドキュメントがこのデータベースからのものになることを意味します。
現在使用しているデータベースを印刷するには、コマンド> dbを使用します。 。使用可能で作成されたすべてのデータベースを一覧表示するには、コマンド> show を使用します 。使用中のこれらのコマンドの例を以下に示します;
>db
fossDB
>show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mydb 0.000GB
出力:
注: Mongoは管理目的でデータベースを使用するため、管理データベースと構成データベースに干渉しないでください。
MongoDBコレクションの作成
コレクションを作成するには、まず、コレクションを作成する予定の正しいデータベースにいることを確認します。コレクションを作成するには、次の2つの方法があります。
1。コレクションを明示的に作成する
以下のコマンドを使用してください:
>db.createCollection("Collection1");
{"ok":1}
出力:
このコマンドは、Collection1という名前のコレクションを作成します
2。ドキュメントを新しいコレクションに挿入する
存在しないコレクションにドキュメントをすばやく挿入してみることができます。これにより、Mongoは新しいコレクションを作成するように求められます。これはプログラムでコレクションを作成するという点では便利ですが、Mongoシェルを使用していて、ドキュメントの挿入中にどこかでタイプミスをすると、ドキュメントが知らないうちに新しいデータベースに保存される可能性があることに注意してください。
新しいコレクションを作成するための構文は次のとおりです。
db.collection_name.insert(document);
fossDBデータベースにコレクションCollection2を作成するには、次のコマンドを使用します。
> db.Collection2.insert({name: "Alex",key: "value",age: 20});
出力:
この例では、ドキュメント部分は次のJSON文字列で表されます。
{
name: "Alex",
key: "value"
age: 20
}
これらは、JSON文字列に典型的なキーと値のペアです。 「名前」がキーで、「アレックス」が値です。ユーザーは、このコレクションに、キー名と異なる値(Maxなど)を持つ複数のドキュメントを含めることができます。
以下のコマンドを使用して、データベース内のすべてのコレクションを一覧表示します。
> show collections
Collection1
Collection2
出力:
出力から、両方のコレクションが作成されていることがわかります。コレクションに新しいドキュメントを追加できると確信しています。
コレクションの表示
気づかなかった場合は、他のコマンドについて説明している間、showキーワードを頻繁に使用しています。これを要約すると、コレクションとデータベースを表示するためのコマンドは次のとおりです。
>show collections
>show dbs
出力:
コマンドdb、と組み合わせて これらのコマンドは、現在のデータベースを印刷するために使用され、Mongoシェルと対話するときに非常に便利です。
MongoDBコレクションとデータベースの削除
ドロップコマンドは、この記事では触れていないキーワードです。これは、ユーザーのMongoサーバーからコレクションまたはデータベース全体を削除するために使用されるコマンドです。ドロップするには、次の構文でプロセスを実行します。
1。コレクションの削除
以前に作成したコレクション「Collection2」を削除します。これは、以下のコマンドを使用して実行されます:
>db.Collection2.drop()
出力:
コレクションが削除されたことを確認するには、showcollectionsコマンドを使用して残りのコレクションを一覧表示します。リストから1つのコレクションが欠落していることに気付くでしょう。
2。データベースの削除
コマンドを実行してデータベースを削除する前に、正しいデータベースにいることを確認する必要があります。そうしないと、間違ったデータベースが削除され、削除する予定のない貴重なデータが失われる可能性があります。この例では、前に作成したデータベースfossDBを削除します。以下のコマンドを使用して、正しいデータベースにいることを確認しましょう。
>db
fossDB
出力:
次に、以下のコマンドを使用してデータベースを削除しましょう。
>db.dropDatabase();
出力:
以下に、さまざまなSQL用語とそれに対応するMongoDB用語を示します。
SQL用語 | MongoDBの用語 |
---|---|
結論
MongoDBは、JSONのような表現、スケーラビリティ、使いやすさ、動的なドキュメント作成方法により、開発者の世界で絶大な人気を博しています。この記事では、MongoDBシェルで使用される3つのコマンドについて説明しました。この記事が、これらのコマンドをよりよく理解するのに役立つことを願っています。データ量の多いリフティングのプロジェクトで使用するデータベースを探している場合は、MongoDBを検討することをお勧めします。