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

use*_*531 5 java mongodb

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

  1. 文档

  2. 基本数据库对象

  3. Bson文档

  4. 基本数据库列表

用于 mongo 驱动程序 API 中。

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

zoo*_*tos 3

有点晚了,但是,正如这里提到的 - 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,因为它们更易于使用。