Node.js MongoDB 删除数据


删除文档

要删除一条记录,或者在 MongoDB 中称为文档,我们使用deleteOne()方法。

第一个参数deleteOne()方法是定义要删除哪个文档的查询对象。

笔记:如果查询找到多个文档,则仅删除第一个出现的文档。

示例

删除地址为 "Mountain 21" 的文档:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: 'Mountain 21' };
  dbo.collection("customers").deleteOne(myquery, function(err, obj) {
    if (err) throw err;
    console.log("1 document deleted");
    db.close();
  });
});
运行示例 »

将上面的代码保存在名为 "demo_delete.js" 的文件中并运行该文件:

运行"demo_delete.js"

C:\Users\ Your Name>node demo_delete.js

这会给你这个结果:

1 document deleted


删除很多

要删除多个文档,请使用deleteMany()方法。

第一个参数deleteMany()方法是定义要删除哪些文档的查询对象。

示例

删除地址以字母 "O" 开头的所有文档:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: /^O/ };
  dbo.collection("customers").deleteMany(myquery, function(err, obj) {
    if (err) throw err;
    console.log(obj.result.n + " document(s) deleted");
    db.close();
  });
});
运行示例 »

将上面的代码保存在名为 "demo_delete_many.js" 的文件中并运行该文件:

运行"demo_delete_many.js"

C:\Users\ Your Name>node demo_delete_many.js

这会给你这个结果:

2 document(s) deleted

结果对象

这个deleteMany()方法返回一个对象,其中包含有关执行如何影响数据库的信息。

大多数信息对于理解并不重要,但对象内的一个对象称为 "result",它告诉我们执行是否正常,以及有多少文档受到影响。

结果对象如下所示:

{ n: 2, ok: 1 }

您可以使用此对象返回已删除文档的数量:

示例

返回已删除文档的数量:

console.log(obj.result.n);

这将产生这样的结果:

2