【问题标题】:Difference between MongoCursor<Document> vs FindIterable<Document>MongoCursor<Document> 与 FindIterable<Document> 之间的区别
【发布时间】:2018-06-15 12:37:08
【问题描述】:

我想知道 MongoCursor 和 FindIterable 有什么区别。

MongoCursor:

MongoCursor<Document> cursorPersonDoc = personDocCollection.find(whereClauseCondition).iterator();
        while (cursorPersonDoc.hasNext()) {
           Document doc = cursorPersonDoc.next();
           String s1 = doc.getString("s1");
         }

FindIterable:

FindIterable<Document> cursorPersonDoc = personDocCollection.find(whereClauseCondition);
    for (doc: cursorPersonDoc){
      String s1 = doc.getString("s1");
    }

【问题讨论】:

    标签: mongodb spring-data-mongodb mongodb-java mongodb-java-3.3.0


    【解决方案1】:

    如果您查看这两个类中的方法,您就会有所了解。

    FindIterable 具有 filter、limit、skip 等方法,可帮助您过滤掉结果。
    它还具有maxAwaitTime(用于可尾游标)和maxTime 等方法。

    MongoCursor 没有所有这些。但是使用 MongoCursor 有一个优势。 MongoCursor 接口扩展了 Closeable,而后者又扩展了 AutoCloseable。

    AutoCloseable(在 Java 7 中引入)使得使用 try-with-resources 成语成为可能。像这样的

    try (final MongoCursor cursor = personDocCollection.find(whereClauseCondition).iterator()) {
       ........
     }
    

    【讨论】:

      【解决方案2】:

      findIterable 和 mongodbIterable 的文档


      FindIterable

      可迭代查找。


      MongoIterable

      MongoIterable 是操作的结果,例如查询。


      MongoCursor 允许遍历任何类型的数据,因为FindIterable 将仅遍历Find 结果。

      FindIterable会给你更多针对性的方法。

      【讨论】:

        猜你喜欢
        • 2012-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-02
        • 2015-03-05
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        相关资源
        最近更新 更多