MongoDB BasicDBObject 与 Java 中的文档

标签 mongodb mongodb-query mongo-java-driver

我正在使用 MongoDB v3.2.0 和 Mongo Java Driver 3.0.4 版本。我正在使用 BasicDBObject(已弃用)而不是在 java 中使用 Document,因为我需要在我的独立 java 项目中进行许多更改才能转换为 Document。任何人都可以告诉我更改为 Document,内存和大型集合插入和读取是否会有任何性能改进。有什么办法可以改善我使用 java 在 MongoDB 上频繁的读写操作。

最佳答案

Basic DBobject 未被弃用。 BasicDBobject 中唯一不推荐使用的部分是 DBPointer类和其他一些方法,如 toString() and getId()

文档实现Map<String, Object>与 Basic DB 对象相比,要编写的代码更少

DBObject 虽然不推荐用于新应用程序,但从 2.x 驱动程序系列升级的那些可能会继续使用 DBObject 接口(interface)来表示 BSON 文档。 DBObject 与 Document 类似,将 BSON 值表示为 Object,但它有一些无法克服的缺点:

  1. 它是一个接口(interface)而不是一个类,所以它的API不能在不破坏二进制兼容性的情况下进行扩展。

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

  3. 因为它是一个接口(interface),所以需要一个名为 BasicDBObject 的单独具体类来实现该接口(interface)

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

关于MongoDB BasicDBObject 与 Java 中的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44878605/

相关文章:

javascript - Connect-mongo 更新导致持续错误 : TypeError: Cannot read property 'Store' of undefined

MongoDB/Mongoose 对日期字段的唯一约束

node.js - 如何使用 Moongoose 访问整个子文档(对象数组中的对象数组)?

mongodb - 无法使用 mongodb 插件版本 3.0.3 运行 Grails 应用程序

java - 为mongodb-java-driver中的嵌入文档编写Codec

node.js - LokiJS - 删除和 findAndRemove 不起作用(saveDatabase 不保存)

mongodb - 是否可以在 MongoDB 中配置 ObjectId 默认字段的名称?

c# - 将 Root 替换为 .net core AggregateExpressionDefinition 的 C# 驱动程序

mongodb - 如何在 MongoDB 更新中将字段的值推送到同一文档的另一个数组字段中

java - 具有 upsert 选项的 mongo BulkWriteOperation 不会返回更新插入的条目