java - MongoDB Java API 中 Lazy* 类的用途

标签 java mongodb

MongoDB Java driver documentation of the packet org.bson提到其他类的各种“Lazy”版本。不幸的是,这些类的 Javadoc 几乎不能称为文档。

它们的目的是什么以及它们的行为与正常版本有何不同?

最佳答案

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

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

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

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

关于java - MongoDB Java API 中 Lazy* 类的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14643985/

相关文章:

java - 未创建 Android TextToSpeech.synthesizeToFile() 文件

Java 文本字段聚焦

jquery - 带有 Mongo 触发器的回调函数

ruby-on-rails-3 - 或者查询匹配 nil 或 ""与 Mongoid 仍然匹配 ""?

node.js - 如何在 mongoose 引用模式中使用 $in

mongodb - 用 $in 更新插入

java - Eclipse、Maven 和 Spring Boot 实时加载

java - 如何使用Excel电子表格作为Java应用程序的计算引擎?

MongoDb 具有多个分组的聚合管道

java - 在Android上混合声音文件