Друзья!Итерация над большой коллекцией в MongoDB по данным весны
Я использую MongoDB в проекте java через данные весны. Я использую интерфейсы репозитория для доступа к данным в коллекциях. Для некоторой обработки мне нужно перебрать все элементы коллекции. Я могу использовать метод репозитория fetchAll, но он всегда возвращает ArrayList.
Однако предполагается, что одна из коллекций будет большой - до 1 миллиона записей по меньшей мере на несколько килобайт. Я полагаю, что я не должен использовать fetchAll в таких случаях, но я не мог найти ни удобных методов, возвращающих некоторый итератор (который может позволить частично получить выборку), ни удобные методы с обратными вызовами.
Я видел только поддержку для получения таких коллекций на страницах. Интересно, является ли это единственным способом работы с такими коллекциями?
Вы можете использовать 'предел()' функцию, чтобы ограничить функцию получить данные в кусках –
Я не знаком с используемой структурой, но мне было бы очень странно, если бы у нее не было обертки для курсоров MongoDB. Вы уверены, что то, что вы получаете, это 'ArrayList', а не обычная реализация« List », которая обтекает курсор? – thkala
да, конечно - я только что зарегистрировал свой findAll(). GetClass() для коллекции около 3 миллионов, и я думаю, что увидел java.util.ArrayList ... –