findOneAndDelete() (Excluir e Retornar um Documento)

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

findOneAndDelete() (Excluir e Retornar um Documento)

findOneAndDelete() remove o primeiro documento que corresponder a um filtro e retorna o próprio documento removido, ex.: `db.users.findOneAndDelete({ name: 'Cara' })`. Diferente de deleteOne(), que retorna apenas contadores, ele devolve o documento completo — útil para arquivar ou auditar exclusões. Retorna null quando nada corresponde.

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

📝 Sintaxe

db.<collection>.findOneAndDelete(<filter>, { projection: <fields> })

⚙️ Parâmetros

filtroPredicado que corresponde ao documento a excluir.
projectionOpcional. Controla quais campos do documento excluído são retornados.

Retorno:O documento excluído; null quando nada corresponde.

▶ Exemplo

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

// findOneAndDelete: remove Cara e imprime o registro dela
const removed = db.users.findOneAndDelete({ name: 'Cara' })
removed

Saída:

{
  _id: ObjectId('64c8a1b20000000000000003'),
  name: 'Cara',
  age: 30
}

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQual é a diferença entre findOneAndDelete e deleteOne?
AdeleteOne() retorna apenas deletedCount; findOneAndDelete() retorna o documento excluído completo para arquivamento e auditoria.
QO que findOneAndDelete retorna quando nada corresponde?
AEle retorna null sem lançar erro, permitindo saber se o filtro correspondeu a algo.
QO findOneAndDelete pode limitar os campos retornados?
ASim, por meio da opção projection — ex.: {projection: {name: 1}} retorna apenas o nome.
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%