sql >> データベース >  >> NoSQL >> MongoDB

spring-dataを介してMongoDBの大規模なコレクションを反復処理します

    応答が遅いが、将来誰かを助けるかもしれない。 Springデータは、MongoDBカーソルをラップするためのAPIを提供していません 機能。 find内で使用します メソッドですが、常にオブジェクトの完成したリストを返します。オプションは、Mongo APIを直接使用するか、 Spring Data Paging APIを使用することです。 、そのようなもの:

            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(!) この方法は不十分です 大量のデータセットの場合(@Shawn Bushのコメントを参照)このような場合は、MongoAPIを直接使用してください。



    1. DockerのSpringbootコンテナにMongodbを接続できません

    2. mongodbの再接続に失敗したイベントを検出するにはどうすればよいですか?

    3. MongoDBコレクションを毎晩自動的に更新するにはどうすればよいですか?

    4. mongod:共有ライブラリのロード中にエラーが発生しました:libssl.so.10 libcrypto.so.10