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

db.collection.drop()

項目一覧

  • 定義
  • 互換性
  • 構文
  • 動作
db.collection.drop(<options>)

MongoDB とドライバー

このページでは、 mongoshメソッドについて説明します。 MongoDB ドライバーで同等のメソッドを確認するには、プログラミング言語の対応するページを参照してください。

C#Java SyncNode.jsCC++GoJava RSKotlin CoroutineKotlin SyncPHPPyMongoMongoidRustScala

データベースからコレクションまたはビューを削除します。 このメソッドでは、削除対象のコレクションに関連付けられているインデックスも削除されます。 このメソッドはdropコマンドのラッパーを提供します。

次の値を返します。true

注意

指定されたコレクションが存在しない場合でも、 db.collection.drop()trueを返します。

次の環境でホストされる配置には db.collection.drop() を使用できます。

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

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

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

drop() メソッドの形式は次のとおりです。

db.collection.drop( { writeConcern: <document> } )

drop() メソッドは、次のフィールドを持つ任意のドキュメントを受け取ります。

フィールド
説明
writeConcern

任意。 操作の 書込み保証(db.collection.drop() write concern ) を表すドキュメント。デフォルトの書込み保証を使用する場合は省略します。

シャーディングされたクラスターで発行すると、mongos は コマンドとそのヘルパーdropdb.collection.drop() 書込み 保証を"majority" に変換します。

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

  • db.collection.drop() メソッドと drop コマンドは、コレクションを削除する前に、ターゲット コレクションで進行中のインデックス構築を中止します。

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

  • コレクションを削除すると、それに関連付けられたゾーンやタグの範囲も削除されます。

  • MongoDB 5.0 以降では、管理データベースまたはコンフィギュレーションデータベース内のコレクションを mongos から削除しようとすると、drop コマンドと db.collection.drop() メソッドによってエラーが返されます。これらのコレクションを削除するには、コンフィギュレーションサーバーに接続して、コマンドを実行します。

    警告

    管理データベースまたは構成データベース内のコレクションを削除すると、クラスターが使用できない状態になる可能性があります。

  • MongoDB 6.0 以降では、db.collection.drop() メソッドにより、指定されたコレクションと暗号化されたフィールドに関連するあらゆる内部コレクションが削除されます。

    警告

    db.collection.drop() メソッドの動作は、ドライバーの drop メソッドの動作と異なります。指定されたコレクションと暗号化されたフィールドに関連する内部コレクションの両方を削除するには、ドライバーの接続で自動暗号化が有効になっている必要があります。指定されたコレクションと暗号化されたフィールドに関連する内部コレクションの両方が mongosh により必ず削除されます。

シャーディングされたクラスターで、MongoDB 5.0 より前に削除されたコレクションと同じ名前のコレクションを作成すると、 mongos によって誤ったシャードに操作が転送される場合があります。この状況を回避するには、次のとおりバージョン固有の手順を使用します。

MongoDB 5.0 以降を実行中のシャーディングされたクラスターでは、特別なアクションは必要ありません。drop() メソッドを使用して、同じ名前の新しいコレクションを作成します。

シャーディングされたクラスターの場合、 drop()メソッドを使用して同じ名前の新しいコレクションを作成する場合は、次のいずれかを行う必要があります。

  • flushRouterConfig を使用して、全ての mongos にキャッシュされたルーティング テーブルをフラッシュします。

  • 既存のドキュメントを削除し、コレクションを再利用するには、db.collection.remove() を使用します。

シャーディングされたコレクションをdb.collection.remove()で削除するよりも高速であるため、キャッシュされたルーティングテーブルをフラッシュすることをお勧めします。キャッシュのフラッシュを避けたい場合にのみ、 remove()アプローチを使用します。

db.collection.drop()は、操作中、指定されたコレクションに対する排他ロックを取得します。 コレクションに対する後続のすべての操作は、 db.collection.drop()がロックを解放するまで待機する必要があります。

次の操作は、現在のデータベース内のstudentsコレクションを削除します。

db.students.drop()

db.collection.drop() オプションドキュメントを受け入れます。

次の操作は、現在のデータベース内のstudentsコレクションを削除します。この操作では、 1件の書込み保証を使用します。

db.students.drop( { writeConcern: { w: 1 } } )

戻る

db.collection.d distinct