2016-09-11 3 views
0

私はMongodbをJavaアプリケーションと統合して学んでいます。これまでは、MongoDBをWindowsの起動時に実行するWindowsサービスとして設定しました。また、Javaアプリケーションと統合されたMongoDBからデータを接続、挿入、検索することに成功しました。私は、各データがMongoDbのKey:Documentペアとして保存され、定義済みのスキーマ定義なしで水平方向に拡大縮小されることを理解しています。しかし、私は次の疑問でまだ明確ではありません: -MongoDBテーブルにデータを格納する方法は?

1)各データがキー:ドキュメントのペアとして格納されているとすると、ここで「キー」という用語は何を意味していますか?それは私がデータに入力しているプラ​​イマリ値か、またはこの 'キー'はいくつかの一意のレコードID(RDBMSのような乱数を含む)を意味しますか?たとえば: -

DBCollection table = db.getCollection("employee"); 
     BasicDBObject document = document = new BasicDBObject(); 
     document.put("EmpId", "1001"); 
     document.put("Name", "Vijay Kumar"); 
     document.put("Gender", "Male"); 
     table.insert(document); 

ここで、私が間違っていない場合、EmpIdはここのキーではありません、そうですか? Keyは、 '57cd9d404a85c209a42ed747'のような 'employee'というMongoDBテーブルのこのデータの一意のIDです。ご確認ください。

2)各データがドキュメントとして保存されているとは、正確にはどういう意味ですか?構造化された形式、または構造化されていない形式でどのように見えますか? SQLDeveloperやToad for RDBMSのようなクライアントを使って、格納されたドキュメントを見ることはできませんか?

3)最後に

+0

Mongoは独自のIDフィールドを作成し、データはバイナリJSON(BSON)として保存されます。 –

+0

ちょっとしたこと:MongoDBを使い始めたばかりの人は、現在のバージョンを使用していると思います。その場合は、古いAPIを使用しない現在のチュートリアルを検索してください。 3.2以降、MongoClient/MongoDatabase/MongoCollection/org.bson.Documentの使用を目指すべきです。ここから始めるのが良い場所です:http://mongodb.github.io/mongo-java-driver/3.2/driver/reference/crud/ – mtj

答えて

0

MongoDBのテーブルに特定の文書を参照するための固有のIDを作成し、巨大なデータを取得するために、同様に格納するために高速です。 1については

:あなたがここでtalkngさ

キーは、それが呼ばれるたびに データを選択するための参照変数です。したがって、我々はkey-value pairと言う。したがって、EmpIdは、1001は値です。または、キーを表の列の名前 、フィールドとして1001と表示できます。 2については

文書は、キーと値のペアのコレクションです。たとえば:

{ 
    "EmpId", "1001", 
    "Name", "Vijay Kumar" 
} 

これは、1つの文書とみなすことができます。 3については

膨大なデータを格納するには、アレイ状に文書を保存する必要があります。 たとえばあなたがeaxmpleについてJSONArray object

を使用することができます:MongoDBの中

[ 
    { 
     "EmpId", "1001", 
     "Name", "Vijay Kumar" 
    }, 
    { 
     "EmpId", "1002", 
     "Name", "Emil John" 
    } 
] 
0

通常、データストアをバイナリJSONとして、すべての文書のためには、それが固有のID(デフォルト名_id)を作成し、挿入しました。これを従来のRDBMSと比較するときは、キーとそのデータとしてのキーを考慮してください。つまり、各ドキュメントは実際にはリレーショナルデータベースの特定の行を意味し、コレクションとはテーブルを意味します。

MongoDB用のツールはほとんどありません。私は特にMongoChefを使用します。

Mongodbは膨大なデータを扱うように設計されているため、データを取得して格納する際に従来のRDBMSより高速です。

関連する問題