[英]MongoDB Java Driver: MongoCore Driver vs. MongoDB Driver vs. MongoDB Async Driver
[英]Mongodb Async vs Sync Java driver
我对 Mongodb 的 java 驱动程序感到很困惑。阅读官方文档,您似乎可以使用普通的 MondoDB 驱动程序或 MongoDB 异步驱动程序。
第一个问题是:我可以在同一个应用程序中同时使用两者还是必须选择一个?
尝试使用 Async 驱动程序时,我发现我以前(使用普通驱动程序)做的事情现在有点迷路了。 例如,我曾经这样做:
FindIterable<Document> iterable = db.getCollection("my_coll").find(query);
String json = JSON.serialize(iterable);
现在我真的不知道如何将结果转换为 json 字符串,因为它们没有包含异步驱动程序中的JSON
class。 第二个问题:如果我不能同时使用两个驱动程序,我该如何序列化FindIterable<Document>
?
答案是:
JSON
类: JSON.serialize(iterable);
需要注意的一件事是这两个驱动程序共享一些依赖项。 尝试对齐驱动程序的版本,以便它们都期望相同版本的共同依赖项,否则您可能会遇到一些“未找到类”类型的问题,这是由于 class 加载程序为一个或一个选择了 class 的不兼容版本而导致的其他司机。
我要补充一点,我发现异步驱动程序非常适合的用例是大型导出样式查询,我必须从 web 服务返回大量数据。 在这种情况下,我必须返回一个大的 CSV。以前,此方法会占用大量 RAM,在将其写入客户端之前构建整套 CSV 数据。 使用异步驱动程序,我可以从 MongoDB 读取小批量(一次 500 条记录似乎是最佳的),并将它们以分块响应的形式写入浏览器客户端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.