친구!스프링 데이터를 통해 MongoDB에서 대규모 콜렉션 반복
스프링 프로젝트를 통해 Java 프로젝트에서 MongoDB를 사용하고 있습니다. 저장소 인터페이스를 사용하여 컬렉션의 데이터에 액세스합니다. 일부 처리의 경우 컬렉션의 모든 요소를 반복해야합니다. 나는 저장소의 fetchAll 메소드를 사용할 수 있지만 항상 ArrayList를 반환합니다.
그러나 컬렉션 중 하나가 커질 것으로 예상됩니다. 최대 100 만개의 레코드가 각각 수 킬로바이트입니다. 나는 그런 경우에 fetchAll을 사용하지 말아야한다고 생각하지만 일부 반복자 (부분적으로 콜렉션을 가져올 수 있도록 허용)를 반환하는 편리한 메소드 나 콜백을 사용하는 편리한 메소드를 찾지 못했습니다.
페이지에서 이러한 컬렉션을 검색하는 데 대한 지원 만 보았습니다. 그러한 컬렉션 작업을위한 유일한 방법인지 궁금합니다.
당신은() '함수가 기능을 제한하는'제한을 사용할 수 있습니다 청크로 데이터를 검색하십시오. –
사용중인 프레임 워크에 익숙하지 않지만 MongoDB의 커서에 대한 래퍼가없는 경우 매우 이상하게 보입니다. 당신이 얻는 것은'ArrayList'이고, 커서 주위를 감싸는 커스텀'List' 구현물이 아닙니까? – thkala
네, 확실하게 - 저는 findAll(). getClass()를 약 3 백만개의 콜렉션에 대해 기록했습니다. 그리고 나는 java.util.ArrayList를 본 것으로 생각합니다 ... –