当前位置: 首页 > 知识库问答 >
问题:

利用Mongo DB异步驱动程序将文档列表转化为Java列表

百里景山
2023-03-14

我是MongoDB的新手。有人建议使用MongoDB异步Java驱动程序API,而不是Spring-Data/Mongo DB驱动程序API,因为异步API支持对DB的回调和非阻塞调用。当我通过下面的链接时,我注意到了一些不同之处。

// find documents
collection.find().into(new ArrayList<Document>(), 
    new SingleResultCallback<List<Document>>() {
        @Override
        public void onResult(final List<Document> result, final Throwable t) {
            System.out.println("Found Documents: #" + result.size());
        }
    });
// find documents
List<BasicDBObject> foundDocument = collection.find().into(new ArrayList<BasicDBObject>());

向你问好,钱德拉。

共有1个答案

曹君墨
2023-03-14

我最终使用Java8的CompletableFuture实现了它,如下所示:

  public CompletableFuture<List<Document>> getMongoDocuments() throws InterruptedException, ExecutionException {
    CompletableFuture<List<Document>> future = new CompletableFuture<>();
    List<Document> list = new ArrayList<>();

    collection.find().forEach((document) -> {
      try {
        list.add(document);
      } catch (Exception e) {
        LOGGER.error("Error while parsing document::" + document.toString(), e);
      }

    }, (final Void result, final Throwable t) -> {
      future.complete(list);
    });

    List<Document> resultList = future.get(); //Just for testing if everything is as planned
    LOGGER.info("getHighResDocumentsByDriveSessionVinAndLogDate:: Count::" + resultList.size());
    return future;
  }

向你问好,钱德拉。

 类似资料:
  • 问题内容: 将SQL数据库(例如1个表)转换为mongoDB文档的最佳方法是什么? 我想我可以使用C#驱动程序并实现一个循环,该循环选择表中的每一行并将其保存在Mongo中。但是,我正在寻找一种转换大量数据的更好方法。 问题答案: 司机的方式是FAR最直接的。导入/导出工具非常棒,但 前提 是您必须同时使用它们。如果您的表中包含日期,并且您尝试从数据库中导出并导入到mongo中,那么您将大吃一惊。

  • 问题内容: 我正在客户端和Django服务器之间发送信息,并且我想对此使用JSON。我正在发送简单的信息-字符串列表。我尝试使用,但是当我这样做时, 看来这只能用于Django对象。如何序列化简单的Python对象? 问题答案: 你可以使用纯Python执行此操作:

  • < li >感谢您点击这个问题!我已经尽了最大努力让这件事尽可能彻底。 < li >但是,如果您需要进一步澄清,请随时告诉我! < li >如果您认为问题太长。你可以读第三个 Mongodb Java 驱动程序: org.mongodb:mongo-java-driver:3.11.0-rc0 查找具有特定“名称”字段的特定文档 然后更新其他字段或整个文档 从不返回null。 Java只告诉我它返

  • 问题内容: 我有一个使用mongodb本机驱动程序的node.js应用程序。在使用节点v8.9.1将应用程序代码迁移到异步/等待的过程中,我努力寻找一种适合mongodb查询的好方法。mongodb驱动程序的主要问题是,所有查询都使用回调,其中对异步方法来说,promise函数是必需的。 备择方案: 猫鼬 -承诺不赞成使用查询,它会强制使用Schema模型,这对我的应用程序来说有点开销。 mong

  • 我尝试使用scala 2.11.7在mongodb 3.0.7中保存一个文档,然后进行快速访问:http://mongodb.github.io/mongo-scala-driver/1.0/gett-start/quick-tour/,但是我运行了这个示例,没有发生任何事情。不创建数据库、集合和文档。 控制台: 少了什么?

  • 问题内容: 现在,我想创建一个新列表,其中包含中的所有值。这里的结果应该包含 问题答案: 使用以下方法尝试: