2017-07-03 3 views
0

MongoDB3.0とMongo Java Driver 3.0.4を使用しています。スタンドアロンのJavaプロジェクトでDocumentに変換するために多くの変更を行う必要があるため、(廃止予定)をjavaのDocumentの代わりに使用しています。誰も私にDocumentへの変更を教えてもらえますか?メモリや大量のコレクションの挿入と読み込みでパフォーマンスが向上しますか? javaを使用してMongoDBの頻繁な書き込み操作と読み取り操作を改善する方法はありますか?MongoDB BasicDBObjectとJavaのドキュメント

+1

実際には両方ともそこに['Map '](http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true)インターフェイスを実装していますほとんどの場合、アプリケーションは単にそれらのインタフェースメソッドを使用するだけです。また、['BasicDBObject'](http://mongodb.github.io/mongo-java-driver/3.4/javadoc/com/mongodb/BasicDBObject.html)[実際には非推奨としてマークされていません](http:// mongodb .github.io/mongo-java-driver/3.4/javadoc/deprecated-list.html)。利用可能な場合は、おそらく 'Document'を使うのがベストプラクティスです。さまざまなドライバー抽象化レイヤーでも、依然として 'DBObject' –

答えて

0

基本的なDBオブジェクトは推奨されなくなりました。 BasicDBobjectでのみ非推奨の部分はDBPointerクラスであり、toString() and getId()のようないくつかの他の方法は

DocumentはMap<String, Object>を実装し、新しいアプリケーションにはお勧めできませんが、DBObjectを

基本的なDBオブジェクトに比べて書き込みに少ないコードであり、 2.xドライバシリーズからアップグレードする場合、引き続きDBObjectインタフェースを使用してBSONドキュメントを表すことがあります。 DBObjectを、それがObjectとしてBSON値を表していることで、文書に似ていますが、それは克服することは不可能だった、いくつかの欠点があります。それのAPIをせずに拡張することはできませんので、それは、インタフェースではなくクラスである

  1. をバイナリ互換性を破る

  2. マップを実際に実装していません。

  3. それはインターフェイスであるため、そのインタフェースを実装BasicDBObjectという別の具体的なクラスは、すべて一緒にこれらを結合する BSON

を要求され、ドライバと呼ばれる小さいが強力なインターフェースを含んでいますBson。 BSONドキュメントを表すクラスは、ドライバ自体に含まれていても、サードパーティに含まれていても、このインタフェースを実装することができ、BSONドキュメントが必要なハイレベルAPIの任意の場所で使用できます。

関連する問題