MogoDBの定義と使用
リレーショナルデータベース
- ルールのACIDをフォローするリレーショナルデータベース
- それは、次の4つの特徴があり、英語でのサービスは、取引で、取引の現実の世界は非常に似ています。
1。(原子)アトミック
成功したトランザクションは、すべての操作の条件は限り一つの操作が失敗したとして、成功しているトランザクションで、トランザクション全体が失敗し、すべてまたは何も行われたすべての操作の業務に言うことです簡単に理解するために(1)原子力、 、ロールバックする必要があります。
そのような銀行振込(2)は、BアカウントにAから口座振替100元は、2つのステップに分けられる:1)アカウントA 100とる; 2)$ Bアカウントに$ 100を堆積します。これらの2つのステップは、いずれか一緒に完成されているか、最初のステップを完了する場合にのみ、第2のステップは失敗し、一緒にお金意志何とか100未満元を終了しないでください。
2。C(整合)一貫
(1)の一貫性は、元のデータベースの整合性制約を変更しませんトランザクションを実行し、一貫性のある状態にデータベースにあったこと、また理解しやすいです。
(2)前整合性制約、例えば、A + B = 10、トランザクション変更した場合、その変更は、トランザクションの終了後もそうでない場合は、+ B = 10を満たしているように、Bを有し、トランザクションは失敗します。
3。I(分離)独立性
(1)が長い他のコミットされていないトランザクション、データへのアクセスとしては、コミットされていないないように、トランザクションは、別のトランザクションによって変更されている場合、データがアクセスされる、互いに並行トランザクションに影響を与えないであろう、いわゆる独立を意味します取引の影響。
(2)そのような取引が今そこにあるが口座Aから口座Bに転送され、Bは、この時点で自分のアカウントをチェックする場合は、このトランザクションの場合は100元で、完了していない、$ 100の新しい追加を見ることができません。
4。D(耐久性)永続
(1)それが作られた変更は、トランザクションのコミット後に持続性を指しが永続的にデータベースに保存されます、ダウンタイムが発生しても失われることはありません。
第二に、分散システム
1。凝集及び透明度の高い分散システム。
2。分散コンピューティングの利点:
(1)信頼性(フォールトトレランス):
- 分散コンピューティングシステムの重要な利点は、信頼性です。サーバは、サーバの他の部分に影響を与えませんクラッシュ。
(2)スケーラビリティ:
- 分散コンピューティングシステム内の複数のマシンを追加する必要があるかもしれません。
(3)資源の共有:
- データを共有することは、このような銀行、予約システムなどのアプリケーションのために不可欠です。
(4)柔軟性:
- システムは非常に柔軟であるため、実装や新サービスを試運転、インストールするのは簡単です。
(5)速いです:
- 分散コンピューティングシステムは、他のシステムよりも高速処理速度を作り、コンピュータのより多くのコンピューティングパワーを持つことができます。
(6)オープンシステム。
- それは、オープンシステムであるため、それがサービスにローカルまたはリモートアクセスすることができます。
(7)高性能。
- 集中型のコンピュータネットワークのクラスタと比較すると、より高いパフォーマンス(とより良い価格)を提供することができます。
3。分散コンピューティング短所:
(1)トラブルシューティング:
- トラブルシューティングおよび問題の診断。
(2)ソフトウェア:
- 少数のソフトウェアサポートは、分散コンピューティングシステムの主な欠点です。
(3)ネットワーク:
- 含むネットワークインフラストラクチャの問題:伝送の問題、高負荷は、情報が失われたというようにしています。
(4)セキュリティ:
- オープンシステムの特徴は、分散コンピューティングシステムは、セキュリティ上のリスクやデータやその他の問題の共有化に対して脆弱であることを確認します。
第三に、MongoDBは何ですか?
- MongoDBのは、C ++言語で書かれて、それがオープンソースデータベース分散ファイルシステムベースのストレージです。
- MongoDBは店が、よりシンプルで簡単に動作することをドキュメント指向のデータベースです。
- テストのためのMongoDBのデフォルトのデータベース、データベース、テスト用データベースに保存されたコレクションを作成していない場合。
- 高負荷の場合には、より多くのノードを追加するには、サーバーのパフォーマンスを確保することができます。
- MongoDBのは、WEBアプリケーションのためのスケーラブルで高性能データ・ストレージ・ソリューションを提供するように設計されています。
- MongoDBのデータは、鍵(キー=>値)ペアの文書データ構造として記憶されます。
- JSONオブジェクトに類似のMongoDBドキュメント。フィールドの値は、他のドキュメント、アレイおよびドキュメントの配列を含むことができます。
- JSONデータドキュメントの構造と本質的に同じ、コレクションに格納されたすべてのデータはBSONフォーマットです。BSONは、JSONと同様のバイナリストレージ形式で、バイナリJSONが短いです。
すべてのデータの一覧を表示するには、四、「ショーのDBS」コマンド。
第五に、「DB」コマンドの実装は、現在のデータベースオブジェクトまたはコレクションを表示します。
第六は、「使用」のコマンドを実行し、指定したデータベースに接続することができます。例:ローカル使用
七差、MongoDBのリレーショナル・データベース
- 文書は(すなわちBSON)のキー(キーと値)のセットです。MongoDBのの文書が同じフィールド、同じフィールドを設定する必要はありませんし、リレーショナルデータベースとは非常に異なっている同じデータ型を必要としない、MongoDBは非常に顕著な特徴です。
八、MongoDBの注意事項
- ドキュメントのキー/値のペアを注文しています。
- バリュードキュメントは二重引用符内の文字列の内部だけではなくてもよく、また、データのいくつかの他のタイプ(あるいは全体埋め込ま文書)であってもよいです。
- MongoDBはタイプと敏感に分化します。
- MongoDBのドキュメントには、重複キーを持つことができません。
- キー文書は文字列です。いくつかの例外を除いて、キーは任意のUTF-8文字です。
- MongoDBのでは、コレクションは、コンテンツが挿入された場合にのみ作成された!、ドキュメント(レコード)を挿入するために、再度コレクション(データシート)を作成した後、コレクションは本当にそれが作成されますされています。
九、キー文書の命名規則
- キーは\ 0(ヌル文字)を含めることはできません。この文字は、債券の終わりを示すために使用されます。
- そして、$特別な意味がある状況下でのみ使用することができています。
- キーの先頭にアンダースコア「_」は予約されています(必須ではありません)。
テン、RDBMS
- リレーショナルデータベース管理システム:リレーショナルデータベース管理システム
XI、コレクションの正式名称(コレクションは、リレーショナルデータベースのテーブルに相当します)
- コレクション名は空の文字列にすることはできません「」
- コレクション名は\ 0文字(ヌル文字)を含めることはできません、この文字はコレクション名の末尾を表します。
- コレクション名は、「システム。」予約収集システムのための接頭辞で始まり、時にすることはできません。
- ユーザーが作成したコレクション名は、予約文字を含めることはできません。一部のドライバは、コレクションは、いくつかのシステムで生成された文字が含まれているため、これは、セットに含ま支援があったん。あなたは、システムによって作成されたこのコレクションにアクセスする場合を除き、または$名の内部には表示されません。
十二は、データベースを作成します
- 使用DATABASE_NAME
- データベースが存在しない場合は、指定されたデータベースへのデータベース、またはスイッチを作成します。
XIII、挿入データ
db.集合名.insert({
title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
第四には、データベースを削除します
- db.dropDatabase()
- そして、useコマンドでデータベースを削除するために切り替えた後に、このコマンドを実行します
XV削除コレクション
- デシベル。COLLECTIONNAME .drop()
- そして、useコマンドでデータベースを削除するために切り替えた後に、このコマンドを実行します
シックスティーンは、コレクションを作成します
- db.createCollection(名前、オプション)
- db.createCollection(「mycol」、{キャップされた:真、autoIndexId:真、サイズ:6142800、最大:10000})
{「OK」:1} - 名前:コレクションの名前を作成します
- オプション:オプションのパラメータは、関連するメモリサイズとインデックスのオプションを指定します
XVIIは、コレクションを表示します
- ショーコレクション
ドキュメントにXVIIIビュー(コレクション)
- デシベル。COLLECTIONNAME .find()
第九、削除文書
- db.col.remove({ 'タイトル': 'MongoDBのチュートリアル'})
- 削除された条件を削除
XX、クエリ文書
- デシベル。COLLECTIONNAME .find()。かなり()
- 方法でプリティ()メソッドは、すべての形式のドキュメントを表示します。
- ()メソッドを見つけることに加えて、findOne()メソッドは、単に文書を返すがあります。
- db.col.find({「好き」:{$ LT:50}})。かなり()相当于同類<50
- db.col.find({「好き」:{$ LTE:50}})。かなり()相当于<= 50好きな場所
- db.col.find({「好き」:{$ GT:50}})。かなり()相当于同類> 50
- db.col.find({「好き」:{$ GTE:50}})。かなり()相当于ここ同類> = 50
- db.col.find({「好き」:{$ NE:50}})。かなり()相当于同類= 50!
- db.col.find({が好き:{$ LT:200、$ GT:100}})相当于> 100 AND同類<200が好き
- db.col.find({$または:[{ "による": "初心者チュートリアル"}、{ "タイトル": "MongoDBの"}]})。かなり()または同等
- db.col.find({ "好き":$、50}または:{$ GT [{ "による": "初心者チュートリアル"}、{ "タイトル": "MongoDBのチュートリアル"}]})。かなり()
- 同等のどこが好き> 50 AND(= '初心者チュートリアル' ORタイトルで= 'MongoDBのチュートリアル')
XXIあなたは文字列データとして「COL」コレクションのタイトルを取得したい場合は、次のコマンドを使用することができます。
-
db.col.find({「タイトル」:{$タイプ:2}})
若しくは
-
db.col.find({「タイトル」:{$タイプ: '文字列'}})
)(限界:XXIIは、指定されたデータの数を読み出します
- db.COLLECTION_NAME.find()。リミット(数字)
XXIIIは、データの指定された数をスキップ:スキップ()
- db.COLLECTION_NAME.find()。リミット(デジタル).SKIP(デジタル)
- デフォルトのパラメータのスキップ()メソッドは0です。
XXIVのソート:ソート()
- db.col.find({}、{「タイトル」:1、_id:0})ソート({「好き」 - 1})。
- 1-1 1は昇順、降順と-1である方法の種類を指定します。
XXVは、インデックスを作成します
- db.collection.createIndex(キー、オプション)
- あなたは、インデックスを作成したいキーインデックスフィールドの値は、あなたが-1に指定することができますインデックスを作成したい場合は降順、昇順を指定するために作成されます。
- db.col.createIndex({「タイトル」:1})
- db.col.createIndex({「タイトル」:1、「説明」 - 1})
- コレクションのインデックスを見ます
db.col.getIndexes()
- コレクション・インデックスのサイズを見ます
db.col.totalIndexSize()
- すべてのインデックスの削除コレクション
db.col.dropIndexes()
- 指定したインデックスでコレクションを削除
db.col.dropIndex("索引名称")