De forma predeterminada, MongoDB cierra automáticamente un cursor cuando el cliente agota todos los resultados en él. Sin embargo, para En colecciones limitadas, se puede usar un cursor adaptable que permanece abierto después de que el cliente agote los resultados en el cursor inicial. Los cursores adaptables son conceptualmente equivalentes a...
tail Comando Unix con la opción -f (modo "seguir"). Después de que los clientes inserten documentos adicionales en una colección limitada, el cursor adaptable continúa recuperando documentos.
Casos de uso
Utilice cursores adaptables en colecciones limitadas con altos volúmenes de escritura donde los índices no son prácticos. Por ejemplo, la replicación de MongoDB utiliza cursores adaptables para seguir el registro de operacionesdel servidor principal.
Nota
Si su consulta se centra en un campo indexado, utilice un cursor normal en lugar de uno con seguimiento. Registre el último valor del campo indexado devuelto por la consulta. Para recuperar los documentos recién añadidos, vuelva a consultar la colección utilizando el último valor del campo indexado en los criterios de consulta. Por ejemplo:
db.<collection>.find( { indexedField: { $gt: <lastvalue> } } )
Empezar
Para crear un cursor adaptable en,mongosh cursor.tailable()consulte.
Para ver los métodos de cursor adaptables para su controlador, consulte la documentación de su controlador.
Comportamiento
Considere los siguientes comportamientos relacionados con los cursores adaptables:
Los cursores adaptables no utilizan índices. Devuelven los documentos en orden natural.
Dado que los cursores adaptables no utilizan índices, el análisis inicial de la consulta puede ser costoso. Tras agotar inicialmente el cursor, las recuperaciones posteriores de los documentos recién añadidos son económicas.
Un cursor adaptable puede volverse inválido si los datos en su posición actual se sobrescriben con datos nuevos. Por ejemplo, esto puede ocurrir si la velocidad de inserción de datos es mayor que la velocidad de iteración del cursor.