我想知道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");
}
答案 0 :(得分:2)
如果你看一下这两个课程中的方法,你就会明白。
FindIterable 包含filter
,limit
,skip
等方法,可帮助您过滤结果。
它还有maxAwaitTime
(适用于tailable游标)和maxTime
等方法。
MongoCursor 并不具备所有这些功能。但使用MongoCursor有一个优势。 MongoCursor接口扩展了 Closeable
,后者又扩展了AutoCloseable。
AutoCloseable
(在Java 7中引入)使得可以使用try-with-resources习惯用法。像这样的东西
try (final MongoCursor cursor = personDocCollection.find(whereClauseCondition).iterator()) {
........
}
答案 1 :(得分:1)
<强> FindIterable 强>
可以查找。
<强> MongoIterable 强>
MongoIterable是一个操作的结果,例如查询。
MongoCursor
允许迭代任何类型的数据,因为FindIterable
将仅遍历Find
结果。
FindIterable
会为您提供更有针对性的方法。