forEach() (Iterar Cursor)

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

forEach() (Iterar Cursor)

forEach() executa um callback em cada documento de um cursor, ex.: `db.users.find().forEach(function(doc) { print(doc.name) })`. Ele processa conforme puxa, nunca armazenando tudo em memória como toArray(), tornando-o a escolha amigável a streaming para grandes conjuntos de resultados. O callback pode coletar, contabilizar ou registrar — um clássico para trabalhos em lote.

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

📝 Sintaxe

db.<collection>.find(<filter>).forEach(<callback>)

⚙️ Parâmetros

função de callbackFunção que recebe cada documento, por exemplo function(doc) { print(doc.name) }.

Retorno:undefined (os callbacks são executados sobre o fluxo de documentos do servidor).

▶ Exemplo

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

// forEach: conta adultos enquanto faz streaming
let n = 0
db.users.find({ age: { $gte: 18 } }).forEach(doc => {
  n++
})
print(n)

Saída:

Alice
Bob
Processados: 2

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQual usa menos memória, forEach ou toArray?
AforEach() processa conforme puxa com baixa memória; toArray() carrega tudo na memória, mais custoso em conjuntos grandes.
QO callback de forEach pode modificar documentos?
AO callback recebe uma cópia — edições não persistem; chame operações de atualização dentro do callback para gravar mudanças.
QPosso sair de forEach antecipadamente?
AforEach não tem break; para saídas condicionais, faça loop manual com next() ou trunque com limit() antes.
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%