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:
: Remove um único documento que corresponde a um critério específico.deleteOne()
: Remove todos os documentos que correspondem a um critério específico.deleteMany()
: Obtém e remove um único documento que corresponde a um critério específico.findOneAndDelete()
: Remove toda a coleção.drop()
Removendo um Documento com deleteOne
O método deleteOne()
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()
deletedCount
acknowledged: true
c:\node\mongoapp>node app { acknowledged: true, deletedCount: 1 }
Removendo Múltiplos Documentos com deleteMany
O método deleteMany()
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
deletedCount
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()
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
É 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.