sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB:¿Por qué debemos cerrar el cursor después de usarlo?

Cerrar el cursor solo es realmente necesario cuando no "agotas" los resultados. O, en otros términos, iterar sobre todos los posibles resultados devueltos por el cursor.

Dejar un "cursor" abierto es como dejar una conexión abierta que nunca se reutiliza. Estas cosas no son gratis. De hecho, el coste de conexión estándar es de 1 MB (aprox.). Entonces, si está dejando muchos cursores "parcialmente iterados", hay una sobrecarga general en términos de una conexión activa y su uso de memoria.

Si, de hecho, siempre itera "todos" los resultados (y eso incluye un "límite" que es un "modificador de cursor"), entonces el cursor se cerrará y todo estará bien.

El uso general será que realmente agote/agote el cursor al revisar todos los resultados. Por lo tanto, no hay una necesidad explícita de destruir.