Docs Menu
Docs Home
/ / /
Node.js ドライバー
/

Delete Documents

このセクションでは、書込み操作を呼び出して 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);

削除操作が成功した場合、これらのステートメントは関連する操作によって削除されたドキュメントの数を出力します。

注意

セットアップ例

この例では、接続 URI を使用してMongoDBのインスタンスに接続します。 MongoDBインスタンスへの接続の詳細については、「 MongoDBへの接続ガイド 」を参照してください。この例では、 Atlasサンプルデータセット に含まれる sample_mflixデータベースの moviesコレクションも使用します。 「 Atlas を使い始める 」ガイドに従って、 MongoDB Atlasの無料階層のデータベースにロードできます。

注意

TypeScript 固有の機能なし

次のコード例ではJavaScriptを使用します。このユースケースに関連するドライバーの TypeScript 固有の機能はありません。

次のコードは、1 つの削除操作を実行する完全なスタンドアロンファイルです。

1// Delete a document
2
3import { MongoClient } from "mongodb";
4
5// Replace the uri string with your MongoDB deployment's connection string
6const uri = "<connection string uri>";
7
8const client = new MongoClient(uri);
9
10async function run() {
11 try {
12 const database = client.db("sample_mflix");
13 const movies = database.collection("movies");
14
15 /* Delete the first document in the "movies" collection that matches
16 the specified query document */
17 const query = { title: "Annie Hall" };
18 const result = await movies.deleteOne(query);
19
20 /* Print a message that indicates whether the operation deleted a
21 document */
22 if (result.deletedCount === 1) {
23 console.log("Successfully deleted one document.");
24 } else {
25 console.log("No documents matched the query. Deleted 0 documents.");
26 }
27 } finally {
28 // Close the connection after the operation completes
29 await client.close();
30 }
31}
32// Run the program and print any thrown exceptions
33run().catch(console.dir);

上記の例を実行すると、次の出力が生成されます。

Successfully deleted one document.

この例を複数回実行すると、最初の実行で一致したドキュメントが削除されるため、コードでは次の出力が生成されます。

No documents matched the query. Deleted 0 documents.

注意

セットアップ例

この例では、接続 URI を使用してMongoDBのインスタンスに接続します。 MongoDBインスタンスへの接続の詳細については、「 MongoDBへの接続 」ガイドを参照してください。この例では、 Atlasサンプルデータセット に含まれる sample_mflixデータベースの moviesコレクションも使用します。 「 Atlas を使い始める 」ガイドに従って、 MongoDB Atlasの無料階層のデータベースにロードできます。

次のコードは、多数の削除操作を実行する完全なスタンドアロンファイルです。

1// Delete multiple documents
2
3import { MongoClient } from "mongodb";
4
5// Replace the uri string with your MongoDB deployment's connection string.
6const uri = "<connection string uri>";
7
8const client = new MongoClient(uri);
9
10async function run() {
11 try {
12 const database = client.db("sample_mflix");
13 const movies = database.collection("movies");
14
15 /* Delete all documents that match the specified regular
16 expression in the title field from the "movies" collection */
17 const query = { title: { $regex: "Santa" } };
18 const result = await movies.deleteMany(query);
19
20 // Print the number of deleted documents
21 console.log("Deleted " + result.deletedCount + " documents");
22 } finally {
23 // Close the connection after the operation completes
24 await client.close();
25 }
26}
27// Run the program and print any thrown exceptions
28run().catch(console.dir);
1// Delete multiple documents
2
3import { MongoClient } from "mongodb";
4
5// Replace the uri string with your MongoDB deployment's connection string
6const uri = "<connection string uri>";
7
8const client = new MongoClient(uri);
9
10async function run() {
11 try {
12 const database = client.db("sample_mflix");
13 const movies = database.collection("movies");
14
15 /* Delete all documents that match the specified regular
16 expression in the title field from the "movies" collection */
17 const result = await movies.deleteMany({ title: { $regex: "Santa" } });
18
19 // Print the number of deleted documents
20 console.log("Deleted " + result.deletedCount + " documents");
21 } finally {
22 // Close the connection after the operation completes
23 await client.close();
24 }
25}
26// Run the program and print any thrown exceptions
27run().catch(console.dir);

上記の例を初めて実行すると、次の出力が生成されます。

Deleted 19 documents

この例えを複数回実行すると、最初の実行で一致したドキュメントが削除されるため、次の出力が表示されます。

Deleted 0 documents

このガイドで説明した型やメソッドの詳細については、次の API ドキュメントを参照してください。

戻る

配列の更新

項目一覧