• Node.js Video Tutorials

Node.js - MongoDB 删除



Node.js 的 mongodb 驱动程序在 Collection 类中包含两种方法。deleteOne() 方法删除一个文档,而 deleteMany() 方法用于一次删除多个文档。这两种方法都需要一个 filter 参数。

collection.deleteOne(filter);

请注意,如果有多个文档满足给定的过滤器条件,则只删除第一个文档。

deleteOne()

在下面的例子中,deleteOne() 方法从 products 集合中删除一个 name 字段匹配 TV 的文档。

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

   const uri = "mongodb://127.0.0.1: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");
}

执行上述代码后,使用 MongoCompass(或 MongoShell)验证预期的文档是否已删除。

deleteMany()

deleteMany() 方法也使用 filter 参数。但是,它会导致所有满足指定条件的文档都被删除。

在上面的代码中,将 deldocs() 函数更改如下。这将导致所有 price>10000 的文档被删除。

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() 方法从数据库中删除集合。

示例

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

async function main(){

   const uri = "mongodb://127.0.0.1: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 ");

}

db 对象中还有一个可用的 **dropCollection()** 方法。

const {MongoClient} = require('mongodb');
async function main(){
   
	const uri = "mongodb://127.0.0.1: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");
}
广告