Overview
このセクションでは、書込み操作を呼び出して MongoDB database 内のコレクションからドキュメントを削除する方法を示します。
削除
コレクションから既存のドキュメントを削除する場合は、 deleteOne()を使用して 1 つのドキュメントを削除し、 deleteMany()を使用して 1 つ以上のドキュメントを削除できます。 これらのメソッドは、削除するドキュメントに一致するクエリ ドキュメントを受け入れます。
注意
アプリケーションが削除後に削除されたドキュメントに関する情報を使用する場合は、コレクション.findOneAndDelete() を使用できます。メソッド。このメソッドは deleteOne() と同様のインターフェースを持ちますが、削除されたドキュメントも返します。
次のように、JSON オブジェクトでdeleteOne()またはdeleteMany()の書込み (write) 操作によって削除するドキュメントを指定できます。
const doc = { pageViews: { $gt: 10, $lt: 32768 }};deleteOne()メソッドを使用して最初に一致するドキュメントを削除するか、 deleteMany()メソッドを使用して一致するすべてのドキュメントを削除するには、ドキュメントをメソッド パラメータとして渡します。
const deleteResult = await myColl.deleteOne(doc);const deleteManyResult = await myColl.deleteMany(doc);次のように、上記の各メソッド呼び出しの結果のdeletedCountフィールドにアクセスすることで、操作によって削除されたドキュメントの数を出力できます。
console.dir(deleteResult.deletedCount);console.dir(deleteManyResult.deletedCount);削除操作が成功した場合、これらのステートメントは関連する操作によって削除されたドキュメントの数を出力します。
deleteOne() の例: 完全なファイル
注意
セットアップ例
この例では、接続 URI を使用して MongoDB インスタンスに接続します。MongoDB インスタンスへの接続の詳細については、「MongoDB への接続」ガイドを参照してください。この例では、Atlas サンプル データセットに含まれる sample_mflix データベースの movies コレクションも使用します。MongoDB Get Startedに従って、MongoDB Atlasの無料クラスター上のデータベースに読み込むことができます。
注意
Typescript固有の機能はありません
次のコード例ではJavaScriptを使用します。このユースケースに関連するドライバーのTypescript固有の機能はありません。
次のコードは、1 つの削除操作を実行する完全なスタンドアロンファイルです。
// Delete a document
import { MongoClient } from "mongodb";
// Replace the uri string with your MongoDB deployment's connection stringconst uri = "<connection string uri>";
const client = new MongoClient(uri);
async function run() { try { const database = client.db("sample_mflix"); const movies = database.collection("movies");
/* Delete the first document in the "movies" collection that matches the specified query document */ const query = { title: "Annie Hall" }; const result = await movies.deleteOne(query);
/* Print a message that indicates whether the operation deleted a document */ if (result.deletedCount === 1) { console.log("Successfully deleted one document."); } else { console.log("No documents matched the query. Deleted 0 documents."); } } finally { // Close the connection after the operation completes await client.close(); }}// Run the program and print any thrown exceptionsrun().catch(console.dir);上記の例を実行すると、次の出力が生成されます。
Successfully deleted one document.この例を複数回実行すると、最初の実行で一致したドキュメントが削除されるため、コードでは次の出力が生成されます。
No documents matched the query. Deleted 0 documents.deleteMany() の例: 完全なファイル
注意
セットアップ例
この例では、接続 URI を使用して MongoDB インスタンスに接続します。MongoDB インスタンスへの接続の詳細については、「MongoDB への接続」ガイドを参照してください。この例では、Atlas サンプル データセットに含まれる sample_mflix データベースの movies コレクションも使用します。MongoDB Get Startedに従って、MongoDB Atlasの無料クラスター上のデータベースに読み込むことができます。
次のコードは、多数の削除操作を実行する完全なスタンドアロンファイルです。
// Delete multiple documents
import { MongoClient } from "mongodb";
// Replace the uri string with your MongoDB deployment's connection string.const uri = "<connection string uri>";
const client = new MongoClient(uri);
async function run() { try { const database = client.db("sample_mflix"); const movies = database.collection("movies");
/* Delete all documents that match the specified regular expression in the title field from the "movies" collection */ const query = { title: { $regex: "Santa" } }; const result = await movies.deleteMany(query);
// Print the number of deleted documents console.log("Deleted " + result.deletedCount + " documents"); } finally { // Close the connection after the operation completes await client.close(); }}// Run the program and print any thrown exceptionsrun().catch(console.dir);// Delete multiple documents
import { MongoClient } from "mongodb";
// Replace the uri string with your MongoDB deployment's connection stringconst uri = "<connection string uri>";
const client = new MongoClient(uri);
async function run() { try { const database = client.db("sample_mflix"); const movies = database.collection("movies");
/* Delete all documents that match the specified regular expression in the title field from the "movies" collection */ const result = await movies.deleteMany({ title: { $regex: "Santa" } }); // Print the number of deleted documents console.log("Deleted " + result.deletedCount + " documents"); } finally { // Close the connection after the operation completes await client.close(); }}// Run the program and print any thrown exceptionsrun().catch(console.dir);上記の例を初めて実行すると、次の出力が生成されます。
Deleted 19 documentsこの例えを複数回実行すると、最初の実行で一致したドキュメントが削除されるため、次の出力が表示されます。
Deleted 0 documentsAPI ドキュメント
このガイドで説明した型やメソッドの詳細については、次の API ドキュメントを参照してください。