MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Especificando opções de cursor ao retornar um Stream no Spring Data MongoDB?


Seu erro está ocorrendo porque você está processando o fluxo muito lentamente, portanto, o cursor está expirando antes de você chegar ao próximo lote.

O tamanho do lote pode ser definido em Objeto Spring Data Query , ou em um Repositório usando o @Meta anotação. Por exemplo:
Query query = query(where("firstname").is("luke"))
    .batchSize(100);

Ou ao usar repositórios:
@Meta(batchSize = 100)
List<Person> findByFirstname(String firstname);

Consulte Documentação do Spring Data MongoDB para mais detalhes.

O tempo limite do cursor também pode ser desabilitado por consulta usando a mesma configuração. por exemplo. @Meta(flags = {CursorOption.NO_TIMEOUT}) .

O tempo limite do cursor não pode ser alterado por consulta. Essa é uma configuração de servidor. Você precisa usar o cursorTimeoutMillis parâmetro do servidor para alterar esse parâmetro em todo o servidor.