0

包 org.bson的MongoDB Java 驱动程序文档提到了其他类的各种“懒惰”版本。不幸的是,这些类的 Javadocs 几乎不能称为文档。

他们的目的是什么,他们的行为与正常版本有何不同?

4

1 回答 1

2

在正常操作下,驱动程序使用类似于 DBObject Map 的接口创建和使用文档。插入文档时,它会遍历地图以将其转换为相应的 BSON 表示。查询时,它通过将键值对放入映射中来创建新文档。

但是有时您想使用原始 BSON 而不支付所有这些序列化和反序列化的成本。这就是惰性 DBObject 实现的目的。自定义编码器不将它们视为映射,而是将字节直接写入 BSON 流。同样,自定义解码器将原始字节直接写入惰性 DBObject。

在这种情况下,术语惰性的含义是,由于惰性等效项仍然必须实现 DBObject 接口,因此它们通过“惰性”解释它们包含的原始 BSON 字节数组来实现。

最后一点:惰性 DBObject 类很可能不会包含在即将发布的驱动程序 3.0 版本中,因为整个序列化正在以一种与惰性 DBObject 不兼容的方式发生变化。会有等效的功能,但不兼容 API。

于 2013-02-02T12:59:33.427 回答