Znajomi!Iteracja na dużej kolekcji w MongoDB za pomocą danych sprężynowych
Używam MongoDB w projekcie Java za pośrednictwem danych sprężyn. Używam interfejsów Repository, aby uzyskać dostęp do danych w kolekcjach. Do pewnego przetwarzania muszę powtórzyć wszystkie elementy kolekcji. Mogę użyć metody repozytorium fetchAll, ale zawsze zwraca ona ArrayList.
Jednak przypuszcza się, że jedna z kolekcji byłaby duża - do 1 miliona, co najmniej po kilka kilobajtów. Przypuszczam, że nie powinienem używać FetchAll w takich przypadkach, ale nie mogłem znaleźć ani wygodnych metod zwracających jakiś iterator (który może pozwolić na pobranie częściowo), ani wygodnych metod z callbackami.
Widziałem tylko obsługę pobierania takich kolekcji na stronach. Zastanawiam się, czy to jedyny sposób na pracę z takimi kolekcjami?
można użyć 'granicę()' funkcja ograniczyć funkcję pobierać dane w kawałkach –
Nie jestem zaznajomiony z ramą, której używasz, ale byłbym bardzo dziwny, gdyby nie miał jakiegoś otoki dla kursorów MongoDB. Czy jesteś pewien, że to, co dostajesz, to 'ArrayList', a nie niestandardowa implementacja' List', która owija się wokół kursora? – thkala
yes, surely - Właśnie zarejestrowałem jego findAll(). GetClass() dla kolekcji około 3 milionów i myślę, że widziałem java.util.ArrayList ... –