ドキュメントの削除
collection.deleteOne()
を使用して、コレクション内の 1 つのドキュメントを削除できます。deleteOne()
メソッドは、指定したクエリ ドキュメントを使用して、クエリに一致するコレクション内のドキュメントのサブセットを照合します。クエリ ドキュメントを指定しない場合(または空のドキュメントを指定した場合)、MongoDB はコレクション内のすべてのドキュメントを照合し、最初に一致したドキュメントを削除します。
deleteOne
メソッドの 2 番目のパラメータとして渡されるoptions
オブジェクトを使用して、追加のクエリ オプションを指定できます。 このメソッドの詳細については、「 deleteOne() API ドキュメント 」を参照してください。
注意
削除後に削除されたドキュメントがアプリケーションで必要な場合は、 collection.findOneAndDelete()メソッド。このメソッドはdeleteOne()
と同様のインターフェースを持ちますが、削除されたドキュメントも返します。
例
次のスニペットは、 movies
コレクションから 1 つのドキュメントを削除します。これは、 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.