Node.js MongoDB 删除文档

删除文档

要删除记录或 MongoDB 中调用的文档,我们使用 deleteOne() 方法。

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

注意:如果查询找到多个文档,则只删除第一个出现的文档。
实例

删除 address 为 "Mountain 21" 的文档:

  1. var MongoClient = require('mongodb').MongoClient;
  2. var url = "mongodb://localhost:27017/";
  3. MongoClient.connect(url, function(err, db) {
  4. if (err) throw err;
  5. var dbo = db.db("mydb");
  6. <strong> var myquery = { address: 'Mountain 21' };
  7. </strong> dbo.collection("customers").deleteOne(myquery, function(err, obj) {
  8. if (err) throw err;
  9. console.log("1 document deleted");
  10. db.close();
  11. });
  12. });

将上述代码保存在名为 "demo_delete.js" 的文件中,然后运行该文件:

运行 "demo_delete.js"

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

结果如下:

  1. 1 document deleted

删除多个

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

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

实例

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

  1. var MongoClient = require('mongodb').MongoClient;
  2. var url = "mongodb://localhost:27017/";
  3. MongoClient.connect(url, function(err, db) {
  4. if (err) throw err;
  5. var dbo = db.db("mydb");
  6. <strong> var myquery = { address: /^O/ };
  7. </strong> dbo.collection("customers").deleteMany(myquery, function(err, obj) {
  8. if (err) throw err;
  9. console.log(obj.result.n + " document(s) deleted");
  10. db.close();
  11. });
  12. });

将上述代码保存在名为 "demo_delete_many.js" 的文件中,然后运行该文件:

运行 "demo_delete_many.js"

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

结果如下:

  1. 2 document(s) deleted

结果对象

deleteMany() 方法返回一个对象,该对象包含该执行对数据库的影响的信息。

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

结果对象如下所示:

  1. { n: 2, ok: 1 }

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

实例

返回删除的文档数量:

console.log(obj.result.n);

结果如下:

  1. 2

分类导航