Removendo Documentos no MongoDB com 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.