dropDatabase
定義
dropDatabase
dropDatabase
コマンドは現在のデータベースを削除し、関連するデータファイルを削除します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
{ dropDatabase: 1, writeConcern: <document>, comment: <any> }
コマンドフィールド
コマンドは、次の任意フィールドがあります。
フィールド | 説明 | |
---|---|---|
| 任意。 より大きい場合に使用する 書込み保証 ( write concern )
レプリカセット上で発行した際、指定された書込み保証によってノードの承認応答が書込み保証 シャーディングされたクラスターで発行されると、MongoDB は指定された書込み保証 (write concern) を | |
| 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。 |
mongosh
はヘルパー メソッドdb.dropDatabase()
も提供します。
動作
ロック
この操作では、排他(X)データベース ロックのみが使用されます。
ユーザー管理
このコマンドは、現在のデータベースに関連付けられているユーザーは削除しません。関連付けられているユーザーを削除するには、削除するデータベースでdropAllUsersFromDatabase
コマンドを実行します。
Indexes
db.dropDatabase()
メソッドとdropDatabase
コマンドは、データベースを削除する前に、ターゲット データベース内のコレクションに対して進行中のインデックスのビルドを中止します。 インデックスのビルドを中止すると、ビルドされたインデックスを削除するのと同じ効果があります。
レプリカセットまたはシャーディングされたレプリカセットの場合、プライマリでインデックスを中止しても、セカンダリでのインデックス構築は同時に中止されません。MongoDB は、指定されたインデックスの進行中の構築をプライマリで中止しようとし、成功した場合には関連する abort
の oplog エントリを作成します。進行中の構築が複製されたセカンダリ ノードは、インデックス構築をコミットまたは中止する前に、プライマリからのコミットまたは中止の oplog エントリを待ちます。
レプリカセットとシャーディングされたクラスター
- レプリカセット
少なくとも、
dropDatabase
は、データベース内のすべてのコレクションの削除がレプリカセット ノードの大部分に伝播するまで待機します(つまり は書込み保証(write concern)"majority"
を使用します)。過半数よりも少ないユーザーからの承認を必要とする書込み保証 (write concern)を指定した場合、コマンドは書込み保証 (write concern
"majority"
を使用します。過半数以上の承認を必要とする書き込み保証を指定した場合、コマンドは指定した書き込み保証が使用されます。
- シャーディングされたクラスター
シャーディングされたクラスターで発行されると、MongoDB は指定された書込み保証 (write concern) を
"majority"
に変換します。削除されたデータベースと同じ名前で新しいデータベースを作成する場合は、
mongos
でdropDatabase
コマンドを実行する必要がありますこれにより、すべてのクラスター ノードがメタデータ キャッシュを更新します。これには、新しいデータベースのプライマリ シャードのロケーションが含まれます。 そうしないと、読み取りのデータが失われる可能性があり、正しいシャードにデータが書き込まれない可能性があります。 回復するには、手動で中断する必要があります。
MongoDB5.0 以降では、 管理データベース または コンフィギュレーション
dropDatabase
db.dropDatabase()
データベース を から削除しようとすると、 コマンドとmongos
メソッドによってエラーが返されます。警告
管理データベースまたはコンフィギュレーションデータベースを削除 (drop) すると、クラスターが使用できない状態になる可能性があります。
変更ストリーム
メソッドと は、削除データベースで開かれた変更ストリーム、または削除データベース内のコレクションで開かれたdb.dropDatabase()
dropDatabase
Change Streamsを 無効化 を作成します。
例
mongosh
の次の例では、 use
<database>
操作を使用して現在のデータベースをtemp
データベースに切り替え、 dropDatabase
コマンドを使用してtemp
データベースを削除します。
use temp db.runCommand( { dropDatabase: 1 } )