我想知道Spring Mongo API
将find
所有内容加载到List
. 如果搜索结果包含十亿条记录,会不会影响内存?有人可以建议一种更好的方法来实现这一点,而无需将所有这些都加载到内存中。使用 limit 会有所帮助,但存在一个缺陷,即它不知道是否将新文档插入到集合中。X of billion
好吧,如果集合在读取记录后进行了修改,则 find by limit 将具有相同的效果。
所以两个问题:
- 通过不在内存中加载所有内容来提高性能
- 您将如何解决在处理过程中添加的这个未知文档?
来自 API 的代码
List<T> result = new ArrayList<T>();
while (cursor.hasNext()) {
DBObject object = cursor.next();
result.add(objectCallback.doWith(object));
}