如何在MongoDB中使用deleteMany方法

1,262 阅读4分钟

MongoDB属于NoSQL类别的数据库,有大量的方法目录。这些方法包括集合方法游标方法数据库方法,以及更多类似的方法。集合方法是所有方法中使用最多的,deleteMany()方法是集合方法的一个组成部分。

deleteMany()方法允许你从MongoDB数据库的一个特定集合中删除多个文档。它也可以用来删除所有的文档,或者可以指定使用deleteMany()方法来删除文档的条件。

在这篇文章中,我们将提供一个详细的示范,将deleteMany()方法应用于MongoDB集合。

让我们从了解这个方法的工作原理开始这个教程。

deleteMany()方法如何在MongoDB中工作

像其他方法一样,也遵循特定的语法:同样,要使用deleteMany()方法,必须遵循以下语法。

db.collection-name.deleteMany({<document1>}, {<document2>}....)

在这个语法中,"collection-name"指的是要应用删除方法的那个集合。

如前所述,deleteMany()方法属于MongoDB数据库的集合方法;所以要应用这个方法,你的系统应该具备以下基于MongoDB的前提条件。

数据库 :需要一个有效的MongoDB数据库,本教程中我们将使用 "linuxhint"作为数据库名称。

采集:为了更好地理解,我们在本指南中使用了多个集合。每个例子都提供了一个不同的数据库。

在创建了数据库和集合后,你必须在该集合中拥有一些文件,以应用deleteMany()方法。

如何在MongoDB中使用deleteMany()方法

本节由几个例子组成,解释了 deleteMany() 方法在多种可能情况下的实现。

例1:使用deleteMany()方法删除所有文档

在这个例子中,我们使用了 "linuxhint"数据库中的 "inventory"数据库,并执行了以下MongoDB命令来获取集合中的所有文档。

> db.inventory.find().pretty()

Text Description automatically generated

这里使用deleteMany()方法来删除库存集合中的所有文档。为此,deleteMany()方法必须在没有任何参数或文档的情况下执行。

要做到这一点,下面提到的命令将使你能够删除所有的文档。

> db.inventory.deleteMany({})

Logo Description automatically generated

例2:使用deleteMany()方法来删除特定的文档

大多数开发者打算将deleteMany()方法应用于符合他们指定条件的文档。在继续之前,让我们使用find()方法来看看 "laptops"集合的内容。

> db.laptops.find().pretty()

例如,我们想删除那些不再可用的文档,而 "状态"字段显示了任何文档的可用性。在下面提到的MongoDB查询中,deleteMany()方法将删除所有 "status"字段与 "sold"关键字匹配的文档。

注意: "**deleteCount "**数字等于 "1",这意味着这个命令删除了 "1"文档。

> db.laptops.deleteMany({status: "sold"})

Graphical user interface Description automatically generated with medium confidence

例3:使用带有条件运算符的deleteMany()方法

我们注意到,deleteMany()方法可以和条件运算符一起使用,只删除那些符合条件的文档。

在下面的命令中,只有那些 "价格"值大于 "1000"的文档被删除。

> db.laptops.deleteMany({price: {$gt: 1000}})

Graphical user interface Description automatically generated with low confidence

类似地,其他条件运算符如**lt,lt, lte, $gte**也可以用deleteMany()方法尝试。

注意: 这里使用的集合("laptops")与例2相同。

例4:使用逻辑运算符的deleteMany()方法

MongoDB支持的逻辑运算符包括**andand、or、nornor、not,** 这些运算符都可以用deleteMany()方法来删除一组特定的文档。

例如,下面提到的命令将使用"$and"操作符来删除所有符合以下条件的文档,其中 "make " 值与 "HP"相匹配,"category"字段等于 "gaming"值。

> db.laptops.deleteMany({$and: [{make: "HP"}, {category: "gaming"}]})

A picture containing website Description automatically generated

例5:用逻辑和条件运算符使用deleteMany()

更深入地了解,insertMany()方法也可以与逻辑和条件运算符同时使用。下面给出的命令将删除所有满足以下条件的文档。

删除的条件: 要么 "价格"值小于 "500",要么 "类别"与 "儿童"值相匹配。

> db.laptops.deleteMany({$or: [{price: {$lt: 500}},{category: "kids"}]})

注意: 这个例子使用了 "linuxhint"数据库中的 "laptops"集合。

总结

MongoDB的集合方法是处理基于Mongo的数据库的核心部分。由于MongoDB将数据以文档形式存储在一个集合中,并且有几个集合方法被用来执行CRUD操作,包括创建、检索、更新和删除文档。我们今天的指南主要是提供对MongoDB的 "deleteMany()"方法的深入了解。MongoDB的爱好者可以按照这个指南一次性删除MongoDB集合中的所有文档。然而,人们也可以通过指定条件来删除一些选定的文档。