注册

MongoDB删除文档方法详解

删除单个文档

删除单个文档的最基本操作就是使用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属性表示已删除的文档数量。