朋友们!
我通过 spring-data 在 java 项目中使用 MongoDB。我使用 Repository 接口访问集合中的数据。对于某些处理,我需要遍历集合的所有元素。我可以使用存储库的 fetchAll 方法,但它总是返回 ArrayList。
但是,假设其中一个集合会很大——多达 100 万条记录,每条至少几千字节。我想在这种情况下我不应该使用 fetchAll,但我既找不到返回某个迭代器(可能允许部分获取集合)的方便方法,也找不到带回调的方便方法。
我看到只支持在页面中检索此类集合。我想知道这是否是处理此类集合的唯一方法?
原文由 Rodion Gorkovenko 发布,翻译遵循 CC BY-SA 4.0 许可协议
迟到的回应,但也许会在将来帮助某人。 Spring Data 不提供任何 API 来包装 Mongo DB Cursor 功能。它在
find
方法中使用它,但总是返回完整的对象列表。选项是直接使用 Mongo API 或使用 Spring Data Paging API ,类似这样:UPD(!) 此方法 不足以 处理大量数据(请参阅@Shawn Bush 评论)对于此类情况,请直接使用 Mongo API。