Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
Cursors

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 (moda "seguir"). Después de que los clientes inserten documentos adicionales en una colección con tamaño fijo, el cursor con seguimiento 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, consulta cursor.tailable().

Para consultar los métodos de cursor con seguimiento para tu driver, consulta la documentación del driver.

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 con seguimiento puede volverse inválido si los datos en su posición actual son sobrescritos por nuevos datos. Por ejemplo, esto puede ocurrir si la velocidad de inserción de datos es mayor que la velocidad de iteración del cursor.

Volver

Iterar un cursor en mongosh

En esta página