Atualizado: 02/01/2025

Removendo Documentos no MongoDB - Node.js

Há várias maneiras de remover documentos no MongoDB. Os métodos principais das coleções para realizar essa tarefa são:

  • deleteOne(): Remove um único documento que corresponde a um critério específico.

  • deleteMany(): Remove todos os documentos que correspondem a um critério específico.

  • findOneAndDelete(): Obtém e remove um único documento que corresponde a um critério específico.

  • drop(): Remove toda a coleção.

Removendo um Documento com deleteOne

O método deleteOne() remove apenas um documento:

const MongoClient = require("mongodb").MongoClient;

const url = "mongodb://127.0.0.1:27017/";
const mongoClient = new MongoClient(url);

async function run() {
    try {
        await mongoClient.connect();
        const db = mongoClient.db("usersdb");
        const collection = db.collection("users");
        const result = await collection.deleteOne({name: "Bob"});
        console.log(result);
    } catch (err) {
        console.log(err);
    } finally {
        await mongoClient.close();
    }
}
run().catch(console.error);

O método deleteOne() aceita um filtro como parâmetro para especificar os documentos a serem removidos. O resultado da operação de exclusão é um objeto que, por meio da propriedade deletedCount, mostra o número de documentos removidos. A propriedade acknowledged: true significa que o servidor recebeu e processou a operação de exclusão:

c:\node\mongoapp>node app
{ acknowledged: true, deletedCount: 1 }

Removendo Múltiplos Documentos com deleteMany

O método deleteMany() remove todos os documentos que correspondem a um critério específico:

const MongoClient = require("mongodb").MongoClient;

const url = "mongodb://127.0.0.1:27017/";
const mongoClient = new MongoClient(url);
  
async function run() {
    try {
        await mongoClient.connect();
        const db = mongoClient.db("usersdb");
        const collection = db.collection("users");
        const result = await collection.deleteMany({name: "Tom"});
        console.log(result);
          
    } catch(err) {
        console.log(err);
    } finally {
        await mongoClient.close();
    }
}
run().catch(console.error);

O método deleteMany retorna um objeto descrevendo o resultado da exclusão. A propriedade deletedCount mostra o número de documentos removidos:

c:\node\mongoapp>node app

{ acknowledged: true, deletedCount: 2 }

Removendo e Obtendo um Documento com findOneAndDelete

const MongoClient = require("mongodb").MongoClient;

const url = "mongodb://127.0.0.1:27017/";
const mongoClient = new MongoClient(url);

async function run() {
    try {
        await mongoClient.connect();
        const db = mongoClient.db("usersdb");
        const collection = db.collection("users");
        const result = await collection.findOneAndDelete({age: 21});
        console.log(result);
    } catch (err) {
        console.log(err);
    } finally {
        await mongoClient.close();
    }
}
run().catch(console.error);

Saída no console:

c:\node\mongoapp>node app
{
  _id: new ObjectId("6112ad050d15a6dfd6330280"),
  name: "Alice",
  age: 21
}

O console mostra qual documento foi removido.

Removendo uma Coleção com drop

O método drop() remove toda a coleção:

const MongoClient = require("mongodb").MongoClient;

const url = "mongodb://127.0.0.1:27017/";
const mongoClient = new MongoClient(url);

async function run() {
    try {
        await mongoClient.connect();
        const db = mongoClient.db("usersdb");
        const collection = db.collection("users");
        const result = await collection.drop();
        console.log(result);  // true|false
    } catch (err) {
        console.log(err);
    } finally {
        await mongoClient.close();
    }
}
run().catch(console.error);

O resultado do método drop é um valor booleano.

É importante notar que, se a coleção removida for a única no banco de dados, todo o banco de dados será excluído também.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com