Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Cursores con seguimiento

Por defecto, MongoDB cierra automáticamente un cursor cuando el cliente agota todos los resultados en el cursor. Sin embargo, para colecciones con tamaño fijo se puede usar un cursor con seguimiento que permanece abierto después de que el cliente agota los resultados en el cursor inicial. Los cursores con seguimiento son conceptualmente equivalentes a los 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.

Utilizar cursores con seguimiento en colecciones con tamaño fijo que tengan volúmenes altos de escritura en los que los índices no sean prácticos. Por ejemplo, la replicación de MongoDB utiliza cursores con seguimiento para examinar la oplogdel primario.

Nota

Si su consulta se encuentra en un campo indexado, utilice un cursor regular en lugar de un cursor con seguimiento. Rastrea el último valor del campo indexado devuelto por la query. Para recuperar los documentos recién añadidos, query la colección nuevamente utilizando el último valor del campo indexado en los criterios de query. Por ejemplo:

db.<collection>.find( { indexedField: { $gt: <lastvalue> } } )

Para crear un cursor con seguimiento en mongosh,cursor.tailable() véase.

Para ver los métodos de cursor adaptables para su controlador, consulte la documentación de su controlador.

Considera los siguientes comportamientos relacionados con los cursores con seguimiento:

  • Los cursores con seguimiento no utilizan índices. Devuelven documentos en orden natural.

  • Dado que los cursores con seguimiento no utilizan índices, el escaneo inicial para la query puede ser costoso. Después de agotar inicialmente el cursor, las recuperaciones posteriores de los documentos recién agregados 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.

  • De forma predeterminada, mongosh imprime una advertencia al usar una llamada de bloqueo en un cursor adaptable, como .next() .hasNext()o. Para silenciar estas advertencias,cursor.disableBlockWarnings() use.

Volver

Iterar un cursor

En esta página