Node.js MongoDB Xóa


Xóa tài liệu

Để xóa một bản ghi hoặc tài liệu như nó được gọi trong MongoDB, chúng tôi sử dụng deleteOne()phương pháp này.

Tham số đầu tiên của deleteOne()phương thức là một đối tượng truy vấn xác định tài liệu nào cần xóa.

Lưu ý: Nếu truy vấn tìm thấy nhiều tài liệu, chỉ lần xuất hiện đầu tiên bị xóa.

Thí dụ

Xóa tài liệu có địa chỉ "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();
  });
});

Lưu đoạn mã trên vào một tệp có tên "demo_delete.js" và chạy tệp:

Chạy "demo_delete.js"

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

Điều này sẽ cung cấp cho bạn kết quả này:

1 document deleted


Xóa nhiều

Để xóa nhiều tài liệu, hãy sử dụng deleteMany()phương pháp này.

Tham số đầu tiên của deleteMany()phương thức là một đối tượng truy vấn xác định tài liệu nào cần xóa.

Thí dụ

Xóa tất cả các tài liệu có địa chỉ bắt đầu bằng chữ "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();
  });
});

Lưu đoạn mã trên vào một tệp có tên "demo_delete_many.js" và chạy tệp:

Chạy "demo_delete_many.js"

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

Điều này sẽ cung cấp cho bạn kết quả này:

2 document(s) deleted

Đối tượng kết quả

Phương deleteMany()thức này trả về một đối tượng chứa thông tin về cách thực thi ảnh hưởng đến cơ sở dữ liệu.

Hầu hết thông tin không quan trọng để hiểu, nhưng một đối tượng bên trong đối tượng được gọi là "kết quả" cho chúng ta biết liệu quá trình thực thi có diễn ra thuận lợi hay không và có bao nhiêu tài liệu bị ảnh hưởng.

Đối tượng kết quả trông như thế này:

{ n: 2, ok: 1 }

Bạn có thể sử dụng đối tượng này để trả về số lượng tài liệu đã xóa:

Thí dụ

Trả lại số tài liệu đã xóa:

console.log(obj.result.n);

Điều nào sẽ tạo ra kết quả này:

2