sql >> Databáze >  >> NoSQL >> MongoDB

Iterujte velkou sbírku v MongoDB prostřednictvím jarních dat

Pozdní odpověď, ale třeba to někomu v budoucnu pomůže. Data Spring neposkytují žádné rozhraní API pro zabalení kurzoru Mongo DB schopnosti. Používá jej v rámci find metod, ale vždy vrátí dokončený seznam objektů. Možnosti jsou použít přímo Mongo API nebo použít Spring Data Paging API , něco takového:

        final int pageLimit = 300;
        int pageNumber = 0;
        Page<T> page = repository.findAll(new PageRequest(pageNumber, pageLimit));
        while (page.hasNextPage()) {
            processPageContent(page.getContent());
            page = repository.findAll(new PageRequest(++pageNumber, pageLimit));
        }
        // process last page
        processPageContent(page.getContent());

UPD (!) Tato metoda nestačí pro velké soubory dat (viz komentáře @Shawn Bush) Pro takové případy použijte přímo Mongo API.



  1. Mongo:jak třídit podle externí hmotnosti

  2. Třetí argument při vytváření modelu v MongooseJS

  3. Jak mohu serializovat pole chrono::DateTime jako ISODate při použití prototypu ovladače Rust Mongo?

  4. Mongoid store_in vytváří náhodné výsledky