MongoDB チュートリアルlogin
MongoDB チュートリアル
著者:php.cn  更新時間:2022-04-21 17:49:03

MongoDB の概念分析


どのデータベースを学ぶとしても、mongodb の基本概念はドキュメント、コレクション、データベースです。以下で 1 つずつ紹介します。

次の表は、Mongo のいくつかの概念を理解しやすくするのに役立ちます:

table結合、mongodbは
SQL 用語/概念MongoDB 用語/概念説明/図
データベースデータベースデータベース
テーブルコレクションデータベーステーブル/コレクション
ドキュメントデータレコード行/ドキュメント
フィールドデータフィールド/ドメイン
インデックスインデックスインデックスtabledoingins
primarykeyprimaryキープリマリーキーをサポートしていません、mongodbは_idフィールドをプライマリキーとして自動的に設定します

以下の例を通じて、Mongo のいくつかの概念をより直観的に理解することもできます:


データベース

1 つの mongodb 内に複数のデータベースを確立できます。

MongoDBのデフォルトのデータベースは「db」で、データディレクトリに保存されます。

MongoDB の 1 つのインスタンスには複数の独立したデータベースを収容でき、それぞれが独自のコレクションと権限を持ち、異なるデータベースは異なるファイルに配置されます。

「show dbs」コマンドは、すべてのデータのリストを表示できます。

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> show dbs
local  0.078GB
test   0.078GB
>

"db" コマンドを実行して、現在のデータベース オブジェクトまたはコレクションを表示します。

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> db
test
>

「use」コマンドを実行して、指定したデータベースに接続します。

> use local
switched to db local
> db
local
>

上記のコマンド例では、「local」はリンク先のデータベースです。

次の章では、MongoDB でのコマンドの使用方法を詳しく説明します。

データベースも名前によって識別されます。データベース名には、次の条件を満たす任意の UTF-8 文字列を使用できます。

  • を空の文字列 ("") にすることはできません。

  • には、「 」 (スペース)、.、$、/、および 権限の観点から見ると、これは「ルート」データベースです。ユーザーがこのデータベースに追加されると、ユーザーはすべてのデータベース権限を自動的に継承します。すべてのデータベースのリストやサーバーのシャットダウンなど、特定のサーバー側コマンドもこのデータベースからのみ実行できます。

  • local:
  • このデータはコピーされることはなく、単一のローカルサーバーに限定されたコレクションを保存するために使用できます
config

: Mongo がシャーディングのセットアップに使用される場合、構成データベースはシャードに関する情報を保存するために内部的に使用されます。

  • Document

    ドキュメントはキーと値のペア (つまり、BSON) です。 MongoDB ドキュメントには同じフィールドがある必要はなく、同じフィールドのデータ型も同じである必要はありません。これはリレーショナル データベースとは大きく異なり、MongoDB の非常に顕著な機能でもあります。
  • 簡単なドキュメントの例は次のとおりです。

    {"site":"www.php.cn", "name":"php中文网"}
    次の表に、RDBMS と MongoDB に対応する用語を示します。 テーブル

  • コレクション
  • ドキュメント

フィールド

テーブル結合埋め込みドキュメント主キー (Mongo DB はキーを _id) として提供します
主キー
データベース サービスおよびクライアント端末
Mysqld/Oraclemongod
mysql/sqlplusmongo

次のことに注意してください:

  1. ドキュメント内のキーと値のペアは順序付けされています。

  2. ドキュメント内の値は、二重引用符で囲まれた文字列だけでなく、他のいくつかのデータ型 (または埋め込まれたドキュメント全体) にすることもできます。

  3. MongoDB では、型と大文字小文字が区別されます。

  4. MongoDB ドキュメントには重複キーを含めることはできません。

  5. ドキュメントのキーは文字列です。いくつかの例外を除き、キーには任意の UTF-8 文字を使用できます。

ドキュメントキーの命名規則:

  • キーには以下を含めることはできません 標準コレクションとは異なり、上限付きコレクションを明示的に作成する必要があります。 コレクションのサイズをバイト単位で指定します。コレクションのデータ格納スペースの値は、事前に割り当てられます。

  • 指定されたストレージサイズにはデータベースのヘッダー情報が含まれることに注意してください。

  • {"site":"www.baidu.com"}
    {"site":"www.google.com","name":"Google"}
    {"site":"www.php.cn","name":"php中文网","num":5}

  • キャップ付きコレクションでは、新しいオブジェクトを追加できます。

は更新できますが、オブジェクトによってストレージ容量は増加しません。増やすとアップデートに失敗します。

データベースは削除を許可していません。コレクション内のすべての行を削除するには、drop() メソッドを使用します。

  • 注: 削除後は、コレクションを明示的に再作成する必要があります。

  • 32 ビット マシンでは、上限付きコレクションの最大ストレージ容量は 1e9 (1X109) バイトです。


  • メタデータ

    データベース情報はコレクションに保存されます。システム名前空間を使用します:

    db.col.findOne()

    MongoDB データベースでは、名前空間 <dbname>.system.* は、次のようなさまざまなシステム情報を含む特別なコレクション (コレクション) です:

    コレクション名前空間 説明
    dbname.system.namespaces すべての名前空間をリストします。
    dbname.system.indexesすべてのインデックスをリストします。
    dbname.system.profileにはデータベースプロファイル情報が含まれます。
    dbname.system.usersデータベースにアクセスできるすべてのユーザーをリストします。
    dbname.local.sources レプリケーションピア (スレーブ) のサーバー情報とステータスが含まれます。

    システム コレクション内のオブジェクトの変更には次の制限があります。

    {{system.indexes}} にデータを挿入してインデックスを作成します。ただし、それ以外の場合、テーブル情報は不変です (特殊なインデックス削除コマンドにより関連情報が自動的に更新されます)。

    {{system.users}}は変更可能です。 {{system.profile}} は削除可能です。


    MongoDB データ型

    次の表は、MongoDB で一般的に使用されるいくつかのデータ型を示しています。

    データ型説明
    文字列文字列。データを保存するために一般的に使用されるデータ型。 MongoDB では、UTF-8 でエンコードされた文字列が有効です。
    整数整数値。数値を保存するために使用されます。使用するサーバーに応じて、32 ビットまたは 64 ビットのいずれかになります。
    ブール値ブール値。ブール値 (true/false) を保存するために使用されます。
    Double倍精度浮動小数点値。浮動小数点値を格納するために使用されます。
    最小/最大キー 値を BSON (バイナリ JSON) 要素の最小値および最大値と比較します。
    配列は、配列、リスト、または複数の値をキーとして保存するために使用されます。
    タイムスタンプのタイムスタンプ。ドキュメントが変更または追加された特定の時刻を記録します。インラインドキュメントの
    オブジェクト
    Nullは、Null値を作成するために使用されます。
    シンボルシンボル。このデータ型は、通常、特殊な記号型を使用する言語で使用される点を除いて、基本的に文字列型と同じです。
    日付日付時刻。現在の日付または時刻を UNIX 時間形式で保存します。独自の日付と時刻を指定できます。Date オブジェクトを作成し、年、月、日の情報を渡します。
    オブジェクトIDオブジェクトID。ドキュメントの作成に使用された ID。
    バイナリデータバイナリデータ。バイナリデータを保存するために使用されます。
    コードコードの種類。 JavaScript コードをドキュメントに保存するために使用されます。
    正規表現正規表現の種類。正規表現を保存するために使用されます。