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

时间:2018-07-18 15:03:43

标签: java mongodb

任何人都可以帮助我了解两者之间的区别

  1. 文档

  2. BasicDBObject

  3. BsonDocument

  4. BasicDBList

用于mongo驱动程序API。

我指的是以下文档http://mongodb.github.io/mongo-java-driver/3.2/driver/reference/crud/,但实际上却无法真正理解必须在哪种情况下使用它们。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

BSON规范支持各种BSON类型。 org.bson.types包包含实现用于Java的各种BSON类型的类。这些是没有Java等效项的类型(例如MaxKey)。

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

一些用户想要类型安全的BSON文档实现,这就是BsonDocument的所在,因为它本质上是一个Map。 BsonValue类的仅实现可以存储在BsonDocument中,从而使其具有类型安全性和完整性。大多数用户更喜欢使用文档或POJO,因为它们更易于使用。