MongoDB shell には、コレクションからドキュメントを削除するための次のメソッドが用意されています。
複数のドキュメントを削除するには、
db.collection.deleteMany()を使用します。一つのドキュメントを削除するには、
db.collection.deleteOne()を使用します。
このページの例は、Atlas サンプル データセットを参照しています。無料の MongoDB Atlas クラスターを作成し、そのクラスターにサンプル データを入力して、以下の例に従うことができます。詳細については、「Atlas スタートガイド」を参照してください。
すべてのドキュメントの削除
コレクションからすべてのドキュメントを削除するには、空のフィルター ドキュメントの {} を db.collection.deleteMany() メソッドに渡します。
例
sample_mflix.movies コレクションからすべてのドキュメントを削除します。
use sample_mflix db.movies.deleteMany({})
このメソッドは、操作のステータスを含むドキュメントを返します。詳細および例については、deleteMany()を参照してください。
注意
大きなコレクションから全てのドキュメントを削除したい場合は、db.collection.drop() メソッドで削除します。また、コレクションの再作成のパフォーマンスは、db.collection.deleteMany() メソッドでドキュメントを削除するよりも高速になる可能性があります。コレクションを再作成するときは、コレクションインデックスなどの指定されたコレクションパラメータも再作成する必要があります。
条件に一致するすべてのドキュメントの削除
削除するドキュメントを識別する条件またはフィルターを指定できます。フィルターは読み取り操作と同じ構文を使用します。
等価条件を指定するには、クエリフィルター ドキュメントで <field>:<value> 式を使用します。
削除条件に一致するすべてのドキュメントを削除するには、deleteMany() メソッドにフィルター パラメータを渡します。
例
title が "Titanic" に等しい sample_mflix.movies コレクションからすべてのドキュメントを削除する手順は、次のとおりです。
use sample_mflix db.movies.deleteMany( { title: "Titanic" } )
このメソッドは、操作のステータスを含むドキュメントを返します。詳細および例については、deleteMany()を参照してください。
条件に一致するドキュメントを 1 つのみ削除
指定されたフィルターに一致するドキュメントを最大で 1 つ削除するには(複数のドキュメントが指定されたフィルターに一致する場合でも)、db.collection.deleteOne() メソッドを使用します。
例
cast 配列に"Brad Pitt"が含まれる sample_mflix.movies コレクションから最初のドキュメントを削除する手順は、次のとおりです。
use sample_mflix db.movies.deleteOne( { cast: "Brad Pitt" } )
注意
MongoDB はドキュメントの自然なソート順序を保持します。この順序付けは内部実装機能であり、その中の特定の構造を前提にしないようにしてください。詳細については、「自然な順序」を参照してください。
削除動作
ドキュメントの削除に関する具体的な動作の詳細については、動作を参照してください。
詳細
その他のドキュメント削除の例については、次のメソッドページを参照してください。
ドキュメントを削除するために使用できる方法については、削除方法を参照してください。