MongoDBの分析概念
我々はMongoDBの基本的な概念に基本的な概念の一つを学ぶべきデータベースを学ぶかどうかは、ヒアドキュメント、コレクション、データベースは、私たちは一つ一つを紹介することです。
次の表は、簡単に概念モンゴのいくつかを理解するのに役立ちます。
SQL用語/コンセプト | MongoDBの用語/コンセプト | 解説/説明 |
---|---|---|
データベース | データベース | データベース |
テーブル | コレクション | データベースのテーブル/コレクション |
行 | ドキュメント | ラインデータ記録/ドキュメント |
コラム | フィールド | データフィールド/ドメイン |
インデックス | インデックス | インデックス |
テーブルにはジョイン | 表の結合、MongoDBはサポートしていません。 | |
主キー | 主キー | 主キー、主キーとしてMongoDBは自動的に_idフィールド |
図の例に従うことにより、我々はできるモンゴいくつかの概念をより直感的な理解:
データベース
MongoDBは、複数のデータベースを作成することができます。
デフォルトのデータベースMongoDBは「デシベル」、データベースはデータディレクトリに格納されています。
複数の独立したデータベースに対応することができるのMongoDBの単一のインスタンスは、権限と異なるデータベースの独自のセットで、それぞれはまた、別のファイルに配置されます。
「ショーのDBS "コマンドは、すべてのデータの一覧を表示します。
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > show dbs local 0.078GB test 0.078GB >
「デシベル」コマンドの実装は、現在のデータベース・オブジェクトまたはコレクションを表示します。
$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > db test >
コマンドを「使用」を実行し、あなたが特定のデータベースに接続することができます。
> use local switched to db local > db local >
上記のコマンドの例としては、「ローカル」とは、データベースをリンクすることです。
次の章では、詳細にコマンド内のMongoDBの使用について説明します。
データベースは、名前によって識別されます。 データベース名は、以下の条件のUTF-8文字列のいずれかとすることができます。
- これは、空の文字列( "")にすることはできません。
- ''(空白)が含まれていない。、$、/、\と\ 0(ヌルゆうフー)。
- それはすべて小文字でなければなりません。
- 64バイトまで。
一部のデータベース名が予約されており、直接これらのデータベースは特別な役割を持ってアクセスすることができます。
- 管理者:「ルート」データベースである権威、の観点から。 あなたがデータベースにユーザを追加する場合、ユーザーは自動的にすべての権限データベースを継承します。 いくつかの特定のサーバー側のコマンドは、このようなすべてのデータベースやサーバのリストとして、データベースから実行することができます。
- ローカル:このデータは、コピーされることはありません任意のコレクションを格納するために使用することができる単一のローカルサーバに限定され
- 設定:断片化のためモンゴはスライス情報を格納するために内部的に使用されるコンフィギュレーションデータベースに設定されています。
ファイル
ドキュメントは、(すなわちBSON)のキー(キーと値)です。 MongoDBのドキュメントは、同じフィールドを設ける必要がなく、同じフィールドと同じデータ型を必要としない、リレーショナルデータベースである、また、非常に顕著な特徴MongoDBの非常に異なっています。
次のように簡単な文書の例は以下のとおりです。
{"site":"www.w3big.com", "name":"本教程"}
次の表は、RDBMSとMongoDBの対応する用語を示しています。
RDBMS | MongoDBの |
---|---|
データベース | データベース |
テーブル | セット |
行 | ファイル |
行 | フィールド |
共同表 | 埋め込みドキュメント |
主キー | 主キーは、(MongoDBは_idのためのキーを提供します) |
データベースサービスとクライアント | |
mysqldを/オラクル | mongod |
mysqlの/ SQLPLUS | モンゴ |
それに注意してください。
- ドキュメントのキー/値のペアを注文しています。
- 文書は、二重引用符で囲まれた文字列の値は、いくつかの他のデータ型(あるいは全体埋め込みドキュメント)することができないだけかもしれません。
- MongoDBは種類や機密を区別します。
- MongoDBのドキュメントには、重複キーを持つことはできません。
- キー文書は文字列です。 いくつかの例外を除いて、キーは任意のUTF-8文字を使用することができます。
命名規則主要文書:
- キーは\ 0(ヌル文字)を含めることはできません。 この文字は、結合の末端を示すために使用されます。
- 。そして、$特定の状況でのみ使用することが特別な意味を持っています。
- キーの先頭に「_」アンダースコアに(厳密には必須ではない)に予約されています。
セット
フォームで:MongoDBは、RDBMS(リレーショナルデータベース管理システムリレーショナルデータベース管理システム)に似収集文書群、です。
コレクションは、データベース内の別の形式や種類のデータのコレクションに挿入することができることを意味していない固定構造のコレクションを存在しますが、通常、我々はいくつかの関連性を持つことになり、データのセットを挿入します。
例えば、我々はコレクションにこれらの異なるデータ構造を文書化することができます。
{"site":"www.baidu.com"} {"site":"www.google.com","name":"Google"} {"site":"www.w3big.com","name":"本教程","num":5}
コレクションへの最初の文書が作成されたとき。
合法的なコレクション名
- コレクション名は空の文字列にすることはできません "。"
- 名前が\ 0文字(ヌル文字)を含めることはできません設定し、この文字は、名前のコレクションの終わりを示します。
- 設定名は「システム」のシステムセットの接頭辞のために予約され始め、時にすることはできません。
- ユーザーが作成したコレクション名は、予約文字を含めることはできません。 いくつかのシステムで生成されたコレクションは、文字が含まれているため、一部のドライバーが名を含むコレクションをサポートして、これがあります。 あなたはこのようなシステムが作成されるのコレクションにアクセスする場合を除き、それ以外の場合は内部の$名には表示されません。
以下の例:
db.col.findOne()
キャップされたコレクション
キャップされたコレクションは、固定サイズのコレクションです。
これは、高い性能特性を有しており、キューはやや類似しており、「RRD」コンセプト。(挿入の順序に従って期限が切れ)有効期限が切れて。
キャップされたコレクションは、自動的に、高性能のオブジェクトを維持するために挿入されています。 それはあなたが明示的にバイト単位でキャップされたコレクション、指定したサイズのコレクションを作成する必要があり、機能と異なるの類似の標準ログの収集に最適です。 事前に割り当てられたデータ記憶容量値の集合。
これは、ヘッダー情報を含むデータベースの指定されたストレージサイズことに留意されたいです。db.createCollection("mycoll", {capped:true, size:100000})
- キャップされたコレクションで、新しいオブジェクトを追加することができます。
- 更新することができ、ただし、オブジェクトは、ストレージ容量を増加することはありません。 あなたが増加した場合、更新は失敗します。
- データベースが削除を許可しません。 すべての行のコレクションを削除するには、ドロップ()メソッドを使用します。
- 注:削除した後、あなたが明示的にコレクションを再作成する必要があります。
- 32ビットマシンでは、キャップされたコレクションは、最大ストレージ1E9(1×10 9)バイトです。
メタデータ
データベース内の情報は、コレクションに格納されます。 彼らは、名前空間のシステムを使用します。
dbname.system.*
MongoDBのデータベースの名前空間内の<DBNAME> .system *以下のようにそれは、システム情報、特別コレクション(コレクション)の様々な含まれています。
コレクションの名前空間 | 説明 |
---|---|
dbname.system.namespaces | すべての名前空間を一覧表示します。 |
dbname.system.indexes | すべてのインデックスを一覧表示します。 |
dbname.system.profile | これは、データベースの要約(プロファイル)情報が含まれています。 |
dbname.system.users | データベースにアクセスできるすべてのユーザーを一覧表示します。 |
dbname.local.sources | これは、エンド(スレーブ)サーバーの情報とステータスのコピーが含まれています。 |
コレクション内のシステム・オブジェクトを変更するには、以下の制限があります。
{{system.indexes}}挿入データでは、インデックスを作成することができます。 しかし、そうでない場合はテーブル情報は、(特別なDROP INDEXコマンドは、自動的に関連する情報が更新されます)不変です。
{{System.users}}は変更されています。 {{System.profile}}は削除されます。
MongoDBのデータ型
次の表MongoDBのいくつかの一般的に使用されるデータ型。
データの種類 | 説明 |
---|---|
文字列 | 文字列。 データを格納する一般的に使用されるデータ型。 MongoDBのでは、UTF-8エンコードされた文字列は有効です。 |
整数 | 整数値。 これは、値を格納するために使用されます。 使用しているサーバーに応じて、32ビットまたは64ビットに分割することができます。 |
ブーリアン | ブール値。 ブール値(真/偽)を格納します。 |
ダブル | 倍精度浮動小数点値。 浮動小数点値を格納します。 |
最小/最大のキー | 最小値と値BSON(バイナリJSON)の要素との相対比の最高値。 |
配列 | 配列またはリストについては、キーに複数の値を格納します。 |
タイムスタンプ | タイムスタンプ。 変更または追加のレコードが特定の時刻を記録します。 |
オブジェクト | 埋め込まれた文書の場合。 |
ヌル | これは、空の値を作成します。 |
シンボル | シンボル。 このデータ型は文字列型と実質的に等しいが、違いは、言語を入力した特殊記号の使用のための一般的であることです。 |
日付 | 日付時刻。 UNIXの時刻の形式は、現在の日付や時刻を格納するために使用されます。 あなたはあなた自身の日付と時刻を指定することができますDateオブジェクトが作成され、着信日時情報を。 |
オブジェクトID | オブジェクトID。 IDは、文書を作成するために使用されます。 |
バイナリデータ | バイナリデータ。 バイナリデータを格納します。 |
コード | タグタイプ。 JavaScriptコードは、ドキュメントを格納するために使用されます。 |
正規表現 | 正規表現のタイプ。 正規表現を格納します。 |