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

MongoDB:Por que devemos fechar o cursor depois que ele é usado?


Fechar o cursor só é realmente necessário quando você não "esgota" os resultados. Ou em outros termos, itere sobre todos os resultados possíveis retornados pelo cursor.

Deixar um "cursor" aberto é como deixar uma conexão aberta que nunca é reutilizada. Essas coisas não são gratuitas. Na verdade, o custo de conexão padrão é de 1 MB (aproximadamente). Portanto, se você estiver deixando muitos cursores "parcialmente iterados" por aí, há uma sobrecarga geral em termos de uma conexão ativa e de uso de memória.

Se, na verdade, você sempre iterar "todos" os resultados (e isso inclui um "limite" que é um "modificador de cursor"), o cursor fechará e tudo ficará bem.

O uso geral será que você realmente esgota/esgota o cursor passando por todos os resultados. Portanto, não há necessidade explícita de destruir.