2017-07-03 125 views
0

我正在使用MongoDB v3.2.0和Mongo Java Driver 3.0.4版本。我使用的是BasicDBObject(不建议使用),而不是在java中使用Document,因为我需要在独立的java项目中进行许多更改以转换为Document。任何人都可以告诉我更改为Document,会不会在内存和大型集合插入和读取方面有任何性能改进。有没有什么方法可以提高我在MongoDB上使用java的频繁读写操作。MongoDB BasicDBObject vs 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 /蒙戈-java的驱动/ 3.4 /的Javadoc /弃用-list.html)。尽管在可用的情况下使用“Document”可能是最佳做法。各种驱动程序抽象层仍然使用'DBObject' –

回答

0

基本DBobject未被弃用。在BasicDBobject只有过时的部分是DBPointer类及其他一些方法,如toString() and getId()

文档实现Map<String, Object>并有更少的代码虽然不建议用于新的应用程序相比,基本数据库对象

DBOBJECT 写,那些从2.x驱动程序系列升级的可能会继续使用DBObject接口来表示BSON文档。 DBOBJECT类似文件,它代表BSON值对象,但它有是不可能克服的几个缺点:

  1. 它是一个接口,而不是一类,所以它的API不能没有延长打破二进制兼容。

  2. 它实际上并没有实现Map。

  3. 因为它是一个接口,称为BasicDBObject一个单独的具体类实现该接口,需要

BSON 为了配合这些都在一起,该驱动器包含一个小而强大的接口称为BSON。代表BSON文档的任何类,无论是包含在驱动程序本身还是来自第三方,都可以实现此接口,然后可以在需要BSON文档的高级API中使用。