allowDiskUse() (Permitir Disco para Ordenação)

Última atualização: 2026-10-09

allowDiskUse() (Permitir Disco para Ordenação)

allowDiskUse() permite que um cursor despeje em disco para operações de bloqueio como sort() que exigem muita memória: `db.users.find().sort({ age: -1 }).allowDiskUse()`. Ordenações acima do limite de memória de 100MB geram erro por padrão; com esta flag, resultados intermediários vão para arquivos temporários. Ele salva ordenações e agregações enormes ao custo de desempenho de E/S de disco.

CategoriaCursor
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

db.<collection>.find(<filter>).sort(<sortKey>).allowDiskUse()

Retorno:O cursor com derramamento em disco habilitado (encadeável).

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// allowDiskUse: permite despejo em disco para uma ordenação enorme
const result = db.logs.find({ level: 'error' })
  .sort({ timestamp: -1 })
  .allowDiskUse()
  .toArray()
result.length

Saída:

1200

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQuando preciso de allowDiskUse?
AHabilite-o quando uma ordenação ou agregação exceder o limite de memória de 100MB e gerar erro, ex.: ordenar uma coleção enorme inteira.
QO allowDiskUse prejudica o desempenho?
ASim — despejos em disco são muito mais lentos que trabalho puramente em memória; prefira ordenações respaldadas por índice para evitá-los.
QO allowDiskUse é o mesmo que a opção de agregação?
AMesma semântica — despejo em disco para intermediários; o método de cursor serve a find().sort(), a opção de agregação serve a aggregate().
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%