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
/ /
Cursors

cursor.allowDiskUse()

cursor.allowDiskUse()

Importante

Método mongosh

Este es un método.mongosh Esta no es la documentación de Node.js ni de otros métodos de controlador específicos del lenguaje de programación.

En la mayoría de los casos, los métodos mongosh funcionan de la misma manera que los métodos tradicionales mongo Métodos de shell. Sin embargo, algunos métodos heredados no están disponibles mongosh en.

Para la documentación heredada de mongo shell, revisa la documentación de la versión correspondiente de MongoDB Server:

Para los controladores de la API de MongoDB, consultar la documentación específica del controlador de MongoDB para cada lenguaje.

allowDiskUse() permite que MongoDB utilice archivos temporales en el disco para almacenar datos que superen el límite de memoria del sistema de 100 megabytes mientras se procesa un ordenamiento bloqueante. Si MongoDB requiere utilizar más de 100 megabytes de memoria del sistema para la operación de ordenamiento bloqueante, MongoDB devuelve un error a menos que la query especifique cursor.allowDiskUse().

allowDiskUse() tiene la siguiente forma:

db.collection.find(<match>).sort(<sort>).allowDiskUse()

Consulta Uso de Índice y Ordenamiento para obtener más información sobre el bloqueo de operaciones de ordenamiento bloqueante.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

cursor.allowDiskUse() no afecta a las operaciones de ordenación que se responden mediante un índice ni a las operaciones de ordenación no indexadas ("de bloqueo") que requieren menos de 100 megabytes de memoria. Para obtener documentación más completa sobre las ordenaciones de bloqueo y el uso del índice de ordenación, consulte Uso de Ordenación e Índice.

Para comprobar si MongoDB debe realizar una ordenación por bloqueo, añada a la consulta cursor.explain() y revise los resultados de la explicación. Si el plan de consulta contiene una SORT etapa, MongoDB debe realizar una ordenación por bloqueo, sujeta al límite de memoria de 100 MB.

Considere una colección sensors con solo el índice predeterminado _id. La colección contiene documentos similares a los siguientes:

{
"sensor-name" : "TEMP-21425",
"sensor-location" : "Unit 12",
"reading" : {
"timestamp" : Timestamp(1580247215, 1),
"value" : 212,
"unit" : "Fahrenheit"
}
}

La siguiente operación incluye un cursor.sort() en el campo reading.timestamp. La operación también incluye cursor.allowDiskUse() para soportar la operación de ordenación.

db.sensors.find({"sensor-location" : "Unit 12"}).
sort({"reading.timestamp" : 1}).
allowDiskUse()

Dado reading.timestamp que no está incluido en un índice, MongoDB debe realizar una ordenación por bloqueo para devolver los resultados en el orden solicitado. Al especificar, MongoDB allowDiskUse() puede procesar la ordenación incluso si requiere más de 100 megabytes de memoria del sistema. Si allowDiskUse() se omitiera y la operación requiriera más de 100 megabytes de memoria del sistema, MongoDB devolvería un error.

Volver

cursor.addOption

En esta página