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

Mongo DB在可查找迭代上抛出NullPointerException

郭俊人
2023-03-14

我正在使用collection.find().into()从MongoDB检索文档以生成文档。以下是代码-

    List<Document> scrapingInformation = new LinkedList<>();

    database.getCollection(scrapingInformationByClientidJobid)
        .find(and(eq("clientId", clientId), eq("jobId", jobId)))
        .into(scrapingInformation, (res, ex) -> {
            System.out.println("Exception while iterating over the 
                finditerable and adding to document list: " + ex.getMessage());
        });

    System.out.println("Total populated documents in list: " + scrapingInformation.size());

更新-此异常的原因可能是驱动程序的异步行为。foreach()into()可能开始迭代Mongo DB的结果,并且方法离开其作用域。因此列表的大小为0。

这个例外的原因是什么?

共有1个答案

彭飞虎
2023-03-14

问题是我使用的异步驱动程序不适合从DB读取数据并将其用于目的,不包括数据流。因此,切换到同步驱动器,现在它工作良好。

附注。我想把这个问题删掉,但保留不变,以防万一有人有同样的问题,他/她可能会找到解决办法。

 类似资料:
  • 我目前正在面对mapstruct和它的初学者问题,其中一个是以下问题。 我知道示例方案:https://github.com/mapstruct/mapstruct-examples/tree/master/mapstruct-iterable-to-non-iterable 希望对象结构清晰。在源代码中有两个列表,应该为每个列表选择第一个元素。MapStruct如何做到这一点?

  • 问题内容: 我有以下活动: 我得到一个NPE,当我尝试调用的,我猜这是因为是一个独立的片段,我有作为之内: 但是,我不确定如何解决此问题,以便可以找到loginButton ID。我以前没有使用过片段,所以我意识到我可能正在使用它们/错误地实现了它们。包含在几个按钮,并没有什么,但一个。 问题答案: 从片段编写代码以初始化按钮,因为您的按钮进入片段布局而不是活动布局。 而从删除登录按钮相关的代码的

  • 我想知道是否有更好的方法来查看Pyspark是否取得了进展(同时写入PL/SQL DB)。当前,当我的代码运行时,我看到的唯一输出是: 在做这一步的时候,很高兴看到pyspark的一些进展。

  • 在MDN文档中:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of 用于。。。of构造被描述为能够在“iterable”对象上迭代。但是有没有一个好的方法来决定一个对象是否是可移植的呢? 我试图找到数组、迭代器和生成器的公共属性,但无法做到这一点。 除了为。。。检查try块中的,

  • 当一个对象实现了属性时,我们认为它是可迭代的。 一些内置的类型如Array,Map,Set,String,Int32Array,Uint32Array等都已经实现了各自的Symbol.iterator。 对象上的Symbol.iterator函数负责返回供迭代的值。 for..of 语句 for..of会遍历可迭代的对象,调用对象上的Symbol.iterator属性。 下面是在数组上使用for.

  • 问题内容: 我有一个’ ‘ 形式的数组,它代表一个小网格的坐标。每个坐标已分配了自己的值。例如…… 我有两个问题。首先,我如何遍历所有存储的值。其次,我希望能够输入一个值并返回其在网格中的特定坐标。解决这个问题的最佳方法是什么? 感谢您的任何帮助! 问题答案: 您可以使用for循环或增强的for循环进行迭代: 要么 第一个版本将是“查找坐标”问题的最简单解决方案-只需检查内部循环中的值是否正确即可