java - mongo 驱动程序 api 中使用的 Document、BasicDBObject、BsonDocument 之间的实际区别是什么

标签 java mongodb

谁能帮我理解两者之间的区别

  1. 文档

  2. BasicDBObject

  3. Bson文档

  4. 基本数据库列表

用于 mongo 驱动程序 API。

我指的是以下文档 http://mongodb.github.io/mongo-java-driver/3.2/driver/reference/crud/怎么无法真正理解它们必须在哪些场景中使用。有什么建议吗?

最佳答案

有点晚了,但是,正如这里提到的 - https://jira.mongodb.org/browse/JAVA-2708

BSON 规范支持各种 BSON 类型。 org.bson.types 包包含实现各种 BSON 类型的类,以便与 Java 一起使用。这些类型没有 Java 等效项(例如 MaxKey)。

如果您使用 org.bson.Document 类型来表示 BSON 文档,那么 _id 字段通常将包含 org.bson.types.ObjectId 值。 Document 类本质上是一个 Map,值可以是任何类型。将它们编码为 BSON 时,这些值必须映射到 BSON 类型(这是通过 Codecs 和 CodecRegistry 完成的)。

一些用户想要一个类型安全的 BSON 文档实现,这就是 BsonDocument 的用武之地,因为它本质上是一个 Map。只有 BsonValue 类的实现才能存储在 BsonDocument 中,使其类型安全且完整。大多数用户会更喜欢 Document 或 POJO,因为它们更易于使用。

关于java - mongo 驱动程序 api 中使用的 Document、BasicDBObject、BsonDocument 之间的实际区别是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51405333/

相关文章:

java - 在 Java 中创建线程可能是一个瓶颈吗?

java - 如何在 Spring Boot OIDC 应用程序的 Controller 中获取用户详细信息?

sql - MongoDB 的 JDBC 驱动程序

ruby - 如何停止登录 MongoDB Ruby 客户端?

mongodb - 在MongoDB中,如何在find()中使用等效于$ out的运算符将数据复制到另一个集合中?

javascript - Node.js - 从域模型中抽象 Mongoose 模型

java - Spring Boot中如何使用@Transactional注解

Java链锁有点不同

java - 从 Java 代码调用 Spring Scheduler 执行

javascript - MongoDB 对象不更新