Mongodb Async vs Sync Java驱动程序

时间:2015-10-16 15:51:41

标签: java mongodb asynchronous

我对Mongodb的java驱动程序很困惑。阅读官方documentation,您似乎可以使用普通的MondoDB驱动程序或MongoDB异步驱动程序。

第一个问题是:我可以在同一个应用程序中使用它们,还是必须选择一个?

尝试使用Async驱动程序我发现了我曾经做过的事情(使用正常的驱动程序),现在我有点迷失了。例如,我曾经这样做过:

FindIterable<Document> iterable = db.getCollection("my_coll").find(query);
String json = JSON.serialize(iterable);

现在我真的不知道如何将结果转换为json字符串,因为它们没有包含Async驱动程序中的JSON类。 第二个问题:如果我无法同时使用这两个驱动程序,那么如何序列化FindIterable<Document>

1 个答案:

答案 0 :(得分:3)

答案是:

  • 是的,你当然可以使用这两种驱动程序。实际上,如果您真的关心应用程序的性能,那么您应该使用Sync驱动程序来处理那些需要MongoDB响应的操作(比如find())。并且您将使用Async驱动程序来处理那些您并不真正需要的驱动程序,以用于“即发即忘”操作(例如插入或更新)。
  • 因此序列化问题得到了上述答案。如果您收到响应,则说明您正在使用同步驱动程序,因此您可以继续使用JSON类:

JSON.serialize(iterable);