Node.js - MongoDB Delete

Trình điều khiển mongodb cho Node.js bao gồm hai phương thức trong lớp Collection. Phương thức deleteOne() xóa một tài liệu, trong khi phương thức deleteMany() được sử dụng để xóa nhiều tài liệu cùng một lúc. Cả hai phương thức đều cần một tham số bộ lọc.

collection.deleteOne(filter);

Lưu ý rằng nếu có nhiều hơn một tài liệu thỏa mãn điều kiện lọc đã cho, chỉ tài liệu đầu tiên sẽ bị xóa.

deleteOne()

Trong ví dụ sau, phương thức deleteOne() sẽ xóa một tài liệu khỏi bộ sưu tập sản phẩm, trong đó trường tên (name) khớp với TV.

const {MongoClient} = require('mongodb');
async function main(){

   const uri = "mongodb://localhost:27017/";
   const client = new MongoClient(uri);

   try {
      await client.connect();
      await deldocs(client, "mydb", "products");
   } finally {
      await client.close();
   }
}

main().catch(console.error);


async function deldocs(client, dbname, colname){
   var myqry = { Name: "TV" };
   const result = await client.db(dbname).collection(colname).deleteOne(myqry);
   console.log("Document Deleted");
}

Sử dụng MongoCompass (hoặc MongoShell) để xác minh xem tài liệu mong đợi đã bị xóa sau khi đoạn mã trên được thực thi hay chưa.

deleteMany()

Phương thức deleteMany() cũng sử dụng tham số filter. Tuy nhiên, nó sẽ xóa tất cả các tài liệu thỏa mãn điều kiện đã chỉ định.

Trong đoạn mã trên, hãy thay đổi hàm deldocs() như sau. Điều này sẽ dẫn đến việc tất cả các tài liệu có price > 10000 sẽ bị xóa.

async function deldocs(client, dbname, colname){
   var myqry = {"price":{$gt:10000}};
   const result = await client.db(dbname).collection(colname).deleteMany(myqry);
   console.log("Documents Deleted");
}

Drop Collection

Bạn có thể xóa một bộ sưu tập khỏi cơ sở dữ liệu bằng phương thức drop().

Example

const {MongoClient} = require('mongodb');

async function main(){

   const uri = "mongodb://localhost:27017/";
   const client = new MongoClient(uri);

   try {
      await client.connect();
      await dropcol(client, "mydb", "products");
   } finally {
      await client.close();
   }
}
main().catch(console.error);


async function dropcol(client, dbname, colname){
   const result = await client.db(dbname).collection(colname).drop();
   console.log("Collection dropped ");

}

Cũng có một phương thức dropCollection() có sẵn với đối tượng db.

const {MongoClient} = require('mongodb');
async function main(){
   
	const uri = "mongodb://localhost:27017/";
   const client = new MongoClient(uri);

   try {
      await client.connect();
      await dropcol(client, "mydb", "orders");
   } finally {
      await client.close();
   }
}

main().catch(console.error);

async function dropcol(client, dbname, colname){
   const result = await client.db(dbname).dropCollection(colname);
   console.log("Collection dropped");
}