¡Amigos!Iteramos la colección grande en MongoDB a través de los datos de la primavera
Estoy usando MongoDB en el proyecto de Java a través de Spring-Data. Utilizo interfaces de repositorio para acceder a datos en colecciones. Para algunos procesos, necesito iterar sobre todos los elementos de la colección. Puedo usar fetchAll method of repository, pero siempre devuelve ArrayList.
Sin embargo, se supone que una de las colecciones sería grande, hasta 1 millón de registros varios kilobytes cada uno como mínimo. Supongo que no debería usar fetchAll en tales casos, pero no pude encontrar ningún método conveniente que devuelva algún iterador (lo que puede permitir que la colección se obtenga de forma parcial), ni métodos convenientes con devoluciones de llamadas.
He visto solo soporte para recuperar tales colecciones en páginas. Me pregunto si es la única forma de trabajar con esas colecciones.
puede usar 'límite()' función de limitar la función de recuperar datos en fragmentos –
No estoy familiarizado con el marco que está utilizando, pero me resultaría muy extraño si no tiene algún contenedor para los cursores de MongoDB. ¿Estás seguro de que lo que obtienes es un 'ArrayList', y no una implementación personalizada' List' que envuelve un cursor? – thkala
sí, seguramente - Acabo de registrar su findAll(). GetClass() para la colección de aproximadamente 3 millones y creo que vi java.util.ArrayList ... –