删除单个文档
删除单个文档的最基本操作就是使用db.collection.remove()
方法。该方法可以在一个集合中删除一个或多个文档。
首先,我们需要连接MongoDB并选定一个集合:
// 连接MongoDB
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://username:password@cluster0.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
// 选定集合
const collection = client.db("test").collection("users");
接下来,我们可以使用remove()
方法删除一个文档。
// 删除一个文档
collection.remove({ name: "john" }, function(err, result) {
if (err) throw err;
console.log("文档已删除");
client.close(); // 关闭连接
});
上述例子中,我们删除了集合中所有name
属性为john
的文档。如果需要删除多个文档,可以在remove()
方法中传入一个查询条件的对象。
删除所有文档
如果需要删除一个集合中的所有文档,可以使用remove()
方法中不传入任何参数的形式。
// 删除集合中所有文档
collection.remove({}, function(err, result) {
if (err) throw err;
console.log("集合中的所有文档已删除");
client.close(); // 关闭连接
});
使用findOneAndDelete()方法删除单个文档
findOneAndDelete()
方法是一个更灵活的方法,可以在一个集合中根据指定的条件查找一个文档,然后将其删除。
// 查找并删除一个文档
collection.findOneAndDelete({ name: "john" }, function(err, result) {
if (err) throw err;
console.log("文档已删除");
client.close(); // 关闭连接
});
使用deleteOne()、deleteMany()方法删除多个文档
deleteOne()
和deleteMany()
方法分别用于删除一个或多个文档。
// 删除一个文档
collection.deleteOne({ name: "john" }, function(err, result) {
if (err) throw err;
console.log("文档已删除");
client.close(); // 关闭连接
});
// 删除多个文档
collection.deleteMany({ name: "john" }, function(err, result) {
if (err) throw err;
console.log(result.deletedCount + "个文档已删除");
client.close(); // 关闭连接
});
在deleteMany()
方法中,result.deletedCount
属性表示已删除的文档数量。