mongodbの簡単な使用

2527 ワード

Mongoは高性能で、オープンソースで、モードのないドキュメント型データベースであり、多くのシーンで従来のリレーショナル型データベースやキー/値格納方式に代わることができます.MongoはC++を使用して開発されたもので、◆集合向けのストレージ:オブジェクトやJSON形式のデータを格納するのに適しています.◆ダイナミッククエリー:Mongoは豊富なクエリー式をサポートしています.クエリー命令はJSON形式のタグを使用し、ドキュメントに埋め込まれているオブジェクトや配列を簡単にクエリーできます.◆完全なインデックスサポート:ドキュメントに埋め込まれたオブジェクトと配列が含まれます.Mongoのクエリー・オプティマイザは、クエリー式を分析し、効率的なクエリー・プランを生成します.◆クエリー監視:Mongoには、データベース操作のパフォーマンスを分析する監視ツールが含まれています.◆レプリケーションと自動フェイルオーバ:Mongoデータベースはサーバー間のデータレプリケーションをサポートし、マスター-スレーブモードとサーバー間の相互レプリケーションをサポートする.レプリケーションの主な目的は、冗長性と自動フェイルオーバです.◆効率的な従来のストレージ方式:バイナリデータや写真などの大型オブジェクトをサポートする.◆クラウドレベルの伸縮性をサポートするために自動スライス(初期alpha段階):自動スライス機能はレベルのデータベースクラスタをサポートし、追加のマシンを動的に追加することができる.MongoDBの主な目標は、キー/値格納方式(高性能と高度な伸縮性を提供する)と従来のRDBMSシステム(豊富な機能)に橋を架けることであり、両者の優位性を一体化することである.公式サイトの説明によると、Mongoは以下のシーンに適しています.◆サイトデータ:Mongoはリアルタイムの挿入、更新、クエリーに非常に適しており、サイトのリアルタイムデータストレージに必要なレプリケーションと高度な伸縮性を備えています.◆キャッシュ:性能が高いため、Mongoは情報インフラストラクチャのキャッシュ層としても適しています.システムの再起動後、Mongoによって構築された永続化キャッシュレイヤは、下位レベルのデータソースの過負荷を回避します.◆大サイズ、低価値のデータ:従来のリレーショナル・データベースを使用してデータを格納する場合は高価になる可能性がありますが、これまでプログラマーが従来のファイルを選択して格納することが多かった場合があります.◆高伸縮性のシーン:Mongoは数十台または数百台のサーバからなるデータベースに非常に適しています.Mongoの路線図には、MapReduceエンジンの組み込みサポートが含まれています.◆オブジェクトおよびJSONデータの格納:MongoのBSONデータフォーマットは文書化フォーマットの格納および照会に非常に適している.もちろん、MongoDBの使用にもいくつかの制限があります.例えば、それは適切ではありません.◆高度なトランザクションシステム:銀行や会計システムなどです.従来のリレーショナル・データベースは、原子的で複雑なトランザクションを大量に必要とするアプリケーションに適しています.◆従来のビジネスインテリジェントアプリケーション:特定の問題に対するBIデータベースは、高度に最適化されたクエリー方式を生成します.このようなアプリケーションでは、データ・ウェアハウスがより適切な選択である可能性があります.◆SQLが必要な問題java簡単操作mongodyデータベース:1、SimpleTestを構築する.JAva、簡単なmongodbデータベース操作を完了
Mongo mongo = new Mongo();

これにより、現在のマシンのlocalhostアドレスにデフォルトで接続されたMongoDBのデータベース接続オブジェクトが作成され、ポートは27017です.
DB db = mongo.getDB(“test”);

これによりtestのデータベースが得られ,mongodbにこのデータベースが作成されていなければ正常に動作する.mongodbは、このデータベースを作成せずにデータの追加操作を完了できます.追加すると、このライブラリがない場合、mongodbは自動的に現在のデータベースを作成します.
dbが得られました.次に、dbオブジェクトのgetCollectionメソッドで完了する「集約コレクションDBCollection」を取得します.
DBCollection users =db.getCollection("users");

これにより、データベースの「テーブル」に相当するDBCollectionが得られます.
すべてのデータの問合せ
DBCursor cur = users.find();
while (cur.hasNext()) {
System.out.println(cur.next());
}

今回はシステムを作る際、ドキュメントや画像などのファイル情報が大量に発生するため、oracleプラスmongodyデータベースを使用しました.私はこのような関係型データベースと非関係型データベースを組み合わせて使用することを発見して、本当にとても効率的で、あなたは関係型データベースにキー値を保存して、非関係型データベースでドキュメント、データにアクセスするだけです.こんなに便利で、速くて、効率がいいです.