MongoDB とドライバー
このページでは、 mongosh メソッドについて説明します。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 | 任意. シャーディングされたクラスターで発行すると、 |
動作
drop()メソッドとdropコマンドは、削除されたコレクションで開かれた 変更ストリーム の 無効化イベント を作成します。db.collection.drop()メソッドとdropコマンドは、コレクションを削除する前に、ターゲット コレクションで進行中のインデックス構築を中止します。レプリカセットまたはシャーディングされたレプリカセットの場合、プライマリでインデックスを中止しても、セカンダリでのインデックス構築は同時に中止されません。MongoDB は、指定されたインデックスの進行中の構築をプライマリで中止しようとし、成功した場合には関連する
abortの oplog エントリを作成します。進行中の構築が複製されたセカンダリ ノードは、インデックス構築をコミットまたは中止する前に、プライマリからのコミットまたは中止の oplog エントリを待ちます。コレクションを削除すると、それに関連付けられたゾーンやタグの範囲も削除されます。
MongoDB 5.0 以降では、管理データベースまたはコンフィギュレーションデータベース内のコレクションを
mongosから削除しようとすると、dropコマンドとdb.collection.drop()メソッドによってエラーが返されます。これらのコレクションを削除するには、コンフィギュレーションサーバーに接続して、コマンドを実行します。MongoDB 6.0 以降では、
drop()により、指定されたコレクションと暗号化されたフィールドに関連するあらゆる内部コレクションが削除されます。重要
mongoshdrop()メソッドの動作は、ドライバーのdropメソッドの動作と異なります。指定されたコレクションと暗号化されたフィールドに関連する内部コレクションの両方を削除するには、ドライバーの接続で自動暗号化が有効になっている必要があります。指定されたコレクションと暗号化されたフィールドに関連する内部コレクションの両方がmongoshにより必ず削除されます。
シャーディングされたクラスターで削除されたコレクション名の再利用
MongoDB 5.0 以降を実行中のシャーディングされたクラスターでは、特別なアクションは必要ありません。drop() メソッドを使用して、同じ名前の新しいコレクションを作成します。
リソースのロック
db.collection.drop()は、操作中、指定されたコレクションに対する排他ロックを取得します。 コレクションに対する後続のすべての操作は、 db.collection.drop()がロックを解放するまで待機する必要があります。
例
デフォルトの書込み保証を使用したコレクションの削除
次の操作は、現在のデータベース内のstudentsコレクションを削除します。
db.students.drop()
w: 1 書込み保証を使用してコレクションを削除
次の操作は、現在のデータベース内のstudentsコレクションを削除します。この操作では、 1件の書込み保証を使用します。
db.students.drop( { writeConcern: { w: 1, j: true } } )