Docs 菜单
Docs 主页
/ / /
Node.js
/ /

删除多个文档

您可以使用 collection.deleteMany() 方法一次删除集合中的多个文档方法。 将查询文档传递给 deleteMany()方法,以指定集合中要删除的文档子集。 如果未提供查询文档(或提供空文档),MongoDB 会匹配集合中的所有文档并将其删除。 虽然您可以使用deleteMany() 删除集合中的所有文档,但请考虑使用 drop() 以获得更好的性能和更清晰的代码。

您可以在deleteMany()方法的第二个参数中传递的options对象中指定其他选项。 有关更多详细信息,请参阅 deleteMany() API 文档。

以下代码片段从 movies 集合中删除多个文档。它使用一个查询文档,该文档配置查询以匹配和删除标题为“Santa Claus”的电影。

注意

可以使用此示例连接到 MongoDB 实例,并与包含样本数据的数据库进行交互。如需了解有关连接到 MongoDB 实例和加载示例数据集的更多信息,请参阅 使用示例指南 。

1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8async function run() {
9 try {
10 const database = client.db("sample_mflix");
11 const movies = database.collection("movies");
12 // Query for all movies with a title containing the string "Santa"
13 const query = { title: { $regex: "Santa" } };
14
15 const result = await movies.deleteMany(query);
16 console.log("Deleted " + result.deletedCount + " documents");
17 } finally {
18 await client.close();
19 }
20}
21run().catch(console.dir);
1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8interface Movie {
9 title: string;
10}
11
12async function run() {
13 try {
14 const database = client.db("sample_mflix");
15 const movies = database.collection<Movie>("movies");
16 const result = await movies.deleteMany({ title: { $regex: "Santa" } });
17 console.log("Deleted " + result.deletedCount + " documents");
18 } finally {
19 await client.close();
20 }
21}
22run().catch(console.dir);

首次运行前面的示例时,应看到以下输出:

Deleted 19 documents

在该示例的后续运行中,由于您已删除所有相关文档,因此您应该看到以下输出:

Deleted 0 documents

后退

删除文档