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 funcionan de la misma manera que losmongosh heredados. mongo Métodos de shell. Sin embargo, algunos métodos heredados no están disponibles mongosh en.

Para obtener la documentación del shell heredado, consulte la documentación de la versión correspondiente de MongoDB mongo Server:

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

allowDiskUse() permite a MongoDB usar archivos temporales en disco para almacenar datos que exceden el 100 límite de memoria del sistema de megabytes durante una ordenación por bloqueo. Si MongoDB requiere usar más de 100 megabytes de memoria del sistema para la ordenación por bloqueo, devuelve un error a menos que la consulta cursor.allowDiskUse() especifique.

allowDiskUse() tiene la siguiente forma:

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

Consulte Uso de clasificación e índice para obtener más información sobre el bloqueo de operaciones de clasificación.

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 100 límite de memoria de megabytes.

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 en cursor.sort() el reading.timestamp campo. También incluye para facilitar la cursor.allowDiskUse() 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