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