mongodb - MongoCursor 之间的区别vs FindIterable
问题描述
我想知道 MongoCursor 和 FindIterable 有什么区别。
Mongo光标:
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");
}
解决方案
如果您查看这两个类中的方法,您就会有所了解。
FindIterable具有类似 filter
,的方法limit
,skip
可以帮助您过滤掉结果。
它还具有maxAwaitTime
(用于可尾游标)和maxTime
.
MongoCursor没有所有这些。但是使用 MongoCursor 有一个优势。MongoCursor 接口 extends Closeable
,后者又扩展了 AutoCloseable。
AutoCloseable
(在 Java 7 中引入)使得使用 try-with-resources 成语成为可能。像这样的东西
try (final MongoCursor cursor = personDocCollection.find(whereClauseCondition).iterator()) {
........
}
推荐阅读
- javascript - “意外的控制台语句无控制台”
- java - 是否有类似 JScrollPane 的东西,您可以在其中单击按钮以访问 Microsoft Word 工具箱中的隐藏组件?
- mysql - 玛丽亚数据库。在不锁定表的情况下使用事务回滚
- python-3.x - 从不同文件夹导入函数以进行单元测试会引发外部函数调用错误
- mongodb - Mongodb - 使用 JWT + REST API 的用户、角色和组
- reactjs - React Native 中的 Hooks:仅从 React 函数调用 Hooks
- python - 如何在列表中的字符串之间添加数字?
- python - 在aarch64上安装Tensorflow:错误:找不到满足tensorflow要求的版本
- angular - 将角度 http 响应转换为类
- c++ - 为 STL 列表编写选择排序?