Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

db.dropDatabase()

項目一覧

  • 定義
  • 互換性
  • 構文
  • 動作
db.dropDatabase(<writeConcern>)

現在のデータベースを削除し、関連するデータファイルを削除します。

このメソッドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

注意

このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、 「サポートされていないコマンド」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

db.dropDatabase() メソッドでは、任意のパラメーターが使われます。

フィールド
説明
writeConcern

任意。"majority" より値が大きい場合に使用する書込み保証 (write concern)を表すドキュメントです。

{ w: <value>, j: <boolean>, wtimeout: <number> }

"majority"のデフォルト/最小書込み保証 (write concern) を使用する場合は省略します。

レプリカセット上で発行した際、指定された書込み保証によってノードの承認応答が書込み保証"majority" よりも少なくなる場合には、この操作では"majority" が使用されます。それ以外の場合は、指定された書込み保証が使用されます。

シャーディングされたクラスターで発行されると、MongoDB は指定された書込み保証 (write concern) "majority" に変換します。

動作 」も参照してください。

db.dropDatabase()dropDatabase コマンドをラップします。

この操作では、排他(X)データベース ロックのみが使用されます。

このコマンドは、現在のデータベースに関連付けられているユーザーは削除しません。関連付けられているユーザーを削除するには、削除するデータベースでdropAllUsersFromDatabaseコマンドを実行します。

db.dropDatabase()メソッドとdropDatabaseコマンドは、データベースを削除する前に、ターゲット データベース内のコレクションに対して進行中のインデックスのビルドを中止します。 インデックスのビルドを中止すると、ビルドされたインデックスを削除するのと同じ効果があります。

レプリカセットまたはシャーディングされたレプリカセットの場合、プライマリでインデックスを中止しても、セカンダリでのインデックス構築は同時に中止されません。MongoDB は、指定されたインデックスの進行中の構築をプライマリで中止しようとし、成功した場合には関連する abortoplog エントリを作成します。進行中の構築が複製されたセカンダリ ノードは、インデックス構築をコミットまたは中止する前に、プライマリからのコミットまたは中止の oplog エントリを待ちます。

レプリカセット

少なくとも、 db.dropDatabase()は、データベース内のすべてのコレクションの削除がレプリカセット ノードの大部分に伝播するまで待機します(つまり は書込み保証(write concern) "majority"を使用します)。

メソッドに書込み保証 (write concern)を指定することができます。過半数よりも少ないユーザーからの承認を必要とする書込み保証 (write concern)を指定した場合、メソッドは書込み保証 (write concern) "majority" を使用します。

過半数以上の承認を必要とする書き込み保証を指定した場合、メソッドでは指定した書き込み保証が使用されます。

シャーディングされたクラスター

シャーディングされたクラスターで発行されると、MongoDB は指定された書込み保証 (write concern) "majority" に変換します。

削除されたデータベースと同じ名前で新しいデータベースを作成する場合は、mongosdropDatabase コマンドを実行する必要があります

これにより、すべてのクラスター ノードがメタデータ キャッシュを更新します。これには、新しいデータベースのプライマリ シャードのロケーションが含まれます。 そうしないと、読み取りのデータが失われる可能性があり、正しいシャードにデータが書き込まれない可能性があります。 回復するには、手動で中断する必要があります。

MongoDB 5.0 以降では、管理データベースまたはコンフィギュレーションデータベースmongos から削除しようとすると、dropDatabase コマンドと db.dropDatabase() メソッドによってエラーが返されます。

警告

管理データベースまたはコンフィギュレーションデータベースを削除 (drop) すると、クラスターが使用できない状態になる可能性があります。

db.dropDatabase() メソッドと dropDatabase コマンドは、削除されたデータベースまたは削除されたデータベース内のコレクションで開かれているすべての Change Streams に対して無効化を作成します。

mongoshの次の例では、 use <database>操作を使用して現在のデータベースをtempデータベースに切り替え、 db.dropDatabase()メソッドを使用してtempデータベースを削除します。

use temp
db.dropDatabase()

Tip

以下も参照してください。

戻る

db.currentOp