MongoDB とドライバー
定義
db.collection.drop(<options>)データベースからコレクションまたはビューが削除されます。このメソッドでは、削除されたコレクションに関連付けられているインデックスも削除されます。
drop()は、dropコマンドのラッパーです。次の値を返します。 true
注意
指定されたコレクションが存在しない場合でも、db.collection.drop()はtrueを返します。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
- MongoDB Atlas はクラウドでの MongoDB 配置のための完全管理サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
drop()メソッドの形式は次のとおりです。
db.collection.drop( { writeConcern: <document> } )
drop() メソッドは、次のフィールドを持つ任意のドキュメントを受け取ります。
フィールド | 説明 |
|---|---|
writeConcern | 任意. When issued on a sharded cluster, |
動作
drop()メソッドとdropコマンドは、削除されたコレクションで開かれた 変更ストリーム の 無効化イベント を作成します。The
db.collection.drop()method anddropcommand abort any in-progress index builds on the target collection before dropping the collection.レプリカセットまたはシャーディングされたレプリカセットの場合、プライマリでインデックスを中止しても、セカンダリでのインデックス構築は同時に中止されません。MongoDB は、指定されたインデックスの進行中の構築をプライマリで中止しようとし、成功した場合には関連する
abortの oplog エントリを作成します。進行中の構築が複製されたセカンダリ ノードは、インデックス構築をコミットまたは中止する前に、プライマリからのコミットまたは中止の oplog エントリを待ちます。コレクションを削除すると、それに関連付けられたゾーンやタグの範囲も削除されます。
MongoDB5.0 以降では、管理データベースまたはコンフィギュレーションデータベース内のコレクションを から削除しようとすると、
dropコマンドとdb.collection.drop()mongosメソッドによってエラーが返されます。これらのコレクションを削除するには、コンフィギュレーションサーバーに接続して、コマンドを実行します。MongoDB 6.0 以降では、
drop()により、指定されたコレクションと暗号化されたフィールドに関連するあらゆる内部コレクションが削除されます。重要
mongoshdrop()メソッドの動作は、ドライバーのdropメソッドの動作と異なります。指定されたコレクションと暗号化されたフィールドに関連する内部コレクションの両方を削除するには、ドライバーの接続で自動暗号化が有効になっている必要があります。指定されたコレクションと暗号化されたフィールドに関連する内部コレクションの両方がmongoshにより必ず削除されます。
シャーディングされたクラスターで削除されたコレクション名の再利用
MongoDB 5.0 以降を実行中のシャーディングされたクラスターでは、特別なアクションは必要ありません。drop() メソッドを使用して、同じ名前の新しいコレクションを作成します。
リソースのロック
db.collection.drop() obtains an exclusive lock on the specified collection for the duration of the operation. All subsequent operations on the collection must wait until db.collection.drop() releases the lock.
例
デフォルトの書込み保証を使用したコレクションの削除
次の操作は、現在のデータベース内のstudentsコレクションを削除します。
db.students.drop()
書込み保証 w: 1 を使用したコレクションの削除
次の操作は、現在のデータベース内のstudentsコレクションを削除します。この操作では、 1件の書込み保証を使用します。
db.students.drop( { writeConcern: { w: 1, j: true } } )