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