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

dropDatabase

項目一覧

  • 定義
  • 互換性
  • 構文
  • コマンドフィールド
  • 動作
dropDatabase

dropDatabaseコマンドは現在のデータベースを削除し、関連するデータファイルを削除します。

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

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

注意

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

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

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

このコマンドの構文は、次のとおりです。

{ dropDatabase: 1, writeConcern: <document>, comment: <any> }

コマンドは、次の任意フィールドがあります。

フィールド
説明
writeConcern

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

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

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

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

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

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

comment

任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。

コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。

mongoshはヘルパー メソッドdb.dropDatabase() も提供します。

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

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

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

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

レプリカセット

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

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

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

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

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

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

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

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

警告

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

メソッドと は、削除データベースで開かれた変更ストリーム、または削除データベース内のコレクションで開かれたdb.dropDatabase() dropDatabaseChange Streams 無効化 を作成します。

mongoshの次の例では、 use <database>操作を使用して現在のデータベースをtempデータベースに切り替え、 dropDatabaseコマンドを使用してtempデータベースを削除します。

use temp
db.runCommand( { dropDatabase: 1 } )

Tip

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

戻る

drop