删除文档
此版本的文档已存档,不再提供支持。 查看最新文档,了解如何升级您的 Node.js 驱动程序版本。
您可以使用 collection.deleteOne()
删除集合中的单个文档。deleteOne()
方法使用您提供的查询文档来匹配集合中与查询匹配的文档子集。如果未提供查询文档(或提供空文档),MongoDB 将匹配集合中的所有文档并删除首个匹配项。
您可以使用作为deleteOne
方法的第二个参数传递的options
对象来指定其他查询选项。 有关此方法的更多信息,请参阅 deleteOne() API 文档。
注意
如果您的应用程序在删除后需要被删除的文档,请考虑使用 collection.findOneAndDelete() 方法,此方法的接口与 deleteOne()
类似的接口 ,但也会返回已删除的文档。
例子
以下代码片段从 movies
集合中删除单个文档。 它使用一个查询文档,该文档配置查询以匹配标题为 title
值“Annie Hall”的电影。
注意
可以使用此示例连接到 MongoDB 实例,并与包含样本数据的数据库进行交互。如需了解有关连接到 MongoDB 实例和加载示例数据集的更多信息,请参阅 使用示例指南 。
1 import { MongoClient } from "mongodb"; 2 3 // Replace the uri string with your MongoDB deployment's connection string. 4 const uri = "<connection string uri>"; 5 6 const client = new MongoClient(uri); 7 8 async function run() { 9 try { 10 const database = client.db("sample_mflix"); 11 const movies = database.collection("movies"); 12 13 // Query for a movie that has title "Annie Hall" 14 const query = { title: "Annie Hall" }; 15 16 const result = await movies.deleteOne(query); 17 if (result.deletedCount === 1) { 18 console.log("Successfully deleted one document."); 19 } else { 20 console.log("No documents matched the query. Deleted 0 documents."); 21 } 22 } finally { 23 await client.close(); 24 } 25 } 26 run().catch(console.dir);
1 import { MongoClient } from "mongodb"; 2 3 // Replace the uri string with your MongoDB deployment's connection string. 4 const uri = "<connection string uri>"; 5 6 const client = new MongoClient(uri); 7 8 async function run() { 9 try { 10 const database = client.db("sample_mflix"); 11 const movies = database.collection("movies"); 12 13 // Query for a movie that has title "Annie Hall" 14 const query = { title: "Annie Hall" }; 15 16 const result = await movies.deleteOne(query); 17 if (result.deletedCount === 1) { 18 console.log("Successfully deleted one document."); 19 } else { 20 console.log("No documents matched the query. Deleted 0 documents."); 21 } 22 } finally { 23 await client.close(); 24 } 25 } 26 run().catch(console.dir);
注意
相同的代码片段
上述 JavaScript 和 TypeScript 代码片段完全相同。驱动程序没有与此使用案例相关的特定于 TypeScript 的功能。
运行前一示例应能看到以下输出:
Successfully deleted one document.
在后续运行上述示例时,由于已经删除了与查询匹配的文档,因此,应能看到以下输出:
No documents matched the query. Deleted 0 documents.