MongoDB データベースのコレクションをドロップまたは削除する

Tahseen Tauseef 2024年2月15日
  1. MongoDB のコレクションの削除
  2. drop() メソッドを使用する
  3. remove() メソッドを使用する
  4. MongoDB でコレクションを削除する
  5. drop() メソッドを使用してコレクションを削除する
  6. remove() メソッドを使用してコレクションからすべてのドキュメントを削除する
  7. コマンドラインを使用して MongoDB にデータベースをドロップする
MongoDB データベースのコレクションをドロップまたは削除する

この記事では、MongoDB でコレクションを削除する際の問題について詳しく説明し、MongoDB でコレクションを削除するために使用されるさまざまな方法について、クエリとともに説明します。

MongoDB のコレクションの削除

MongoDB はコレクションを 2つの方法で削除します。 MongoDB データベース サーバーで drop コマンドを実行すると、出力は true または false になります。 コレクションがデータベースに存在し、正常に削除される場合、結果は true になります。

コレクションがデータベースに存在せず、適切に削除できない場合、結果は false になります。

drop および remove メソッドを使用して、MongoDB からコレクションを削除します。 コレクションをアンインストールするときは、コレクション名も指定する必要があります。

drop() メソッドを使用する

MongoDB データベースからコレクションを削除するには、db.collection.drop() 関数を使用します。 データベースからコレクションを削除し、関連するインデックスを削除します。

  1. db.collection.drop() 関数と drop コマンドは、破棄されたコレクションで開いているすべての変更ストリームに対して invalidate イベントを生成します。

  2. db.collection.drop() メソッドと drop コマンドは、ドロップする前に、ターゲット コレクションで進行中のインデックス構築を停止します。 MongoDB 4.4 より前に進行中のインデックス構築を含むコレクションをダンプしようとすると、エラーが発生しますが、コレクションは削除されません。

    プライマリ インデックスの作成を中止しても、レプリカ セットまたはシャード レプリカ セットのセカンダリ インデックスの作成はキャンセルされません。 代わりに、MongoDB はプライマリで指定されたインデックスの進行中のビルドを停止しようとし、成功した場合は中止 oplog アイテムを生成します。

    レプリケートされた進行中のビルドを持つセカンダリ メンバーは、インデックス ビルドをコミットまたは中止する前に、メインが oplog アイテムをコミットまたは中止するのを待ちます。

  3. MongoDB 4.0.2 以降、コレクションを削除すると、接続されているゾーン/タグ範囲が削除されます。

  4. MongoDB 5.0 から、mongos から管理データベースまたは構成データベースのコレクションを削除しようとすると、drop コマンドと db.collection.drop() メソッドはエラーを返します。 代わりに構成サーバーに接続し、コマンドを実行してこれらのコレクションを削除します。

構文:

db.collection_database.drop()

コレクション データベースは、上記の構文でコレクションの名前として指定され、データベース サーバーからコレクションを削除するために使用されます。

remove() メソッドを使用する

コレクションからドキュメントを削除するには、db.collection.remove() 関数を使用します。

構文:

db.collection_database.remove ({})

コレクション データベースは、ドキュメントを削除する必要がある場所として、前述の構文で定義されています。 したがって、空の結果セット () を指定して remove メソッドを提供すると、すべてのコレクション レコードが消去されます。

db.collection_name.remove (<query>, {Writeconcern, justone})

query パラメーターは、クエリのパラメーターに応じてコレクションから個々の項目を削除する機能として定義されます。

定義されているパラメーターは 1つだけで、コレクションから 1つのドキュメントが削除されます。 キーワードを true に設定して有効にする必要があります。

選択基準で true キーワードを使用すると、1つのレコードのみが除外されます。 選択基準で true キーワードを使用しなかった場合、コレクション内のすべての記事が削除されます。

Writeconcern を使用する場合、writeconcern のデフォルトの使用はバイパスされます。

remove() メソッドのパラメーター:

  1. query - query 演算子は、削除基準を提供するために使用されます。 たとえば、空の document () を渡すと、コレクション内のすべてのドキュメントが削除されます。
  2. justOne - true に設定すると、削除は 1つのドキュメントのみに制限されます。 false デフォルト値を使用せずに、削除基準に一致するすべてのドキュメントを削除します。
  3. writeConcern - ドキュメントは書かれた懸念を表現します。 デフォルトの writeconcern はそのままにします。

MongoDB でコレクションを削除する

コレクション全体とそのインデックスを削除する場合は、drop メソッドを使用して、インデックスを含むコレクションをデータベースから削除できます。 drop アプローチは、コレクションとそのインデックスをデータベース サーバーから削除します。

remove アプローチを使用すると、コレクションから特定のドキュメントを削除できます。 remove メソッドはコレクション内のすべてのドキュメントを削除しますが、インデックスはデータベース サーバーに残り、削除されません。

データベース サーバーからコレクションを削除すると、2つの結果セットが表示されます。

次のクエリは、コレクションがデータベース サーバーから削除されたときに、結果セットに true 値が表示されることを示しています。 たとえば、以下のクエリ結果は true です。

データベース サーバーがコレクションを削除したため、結果セットには true が表示されます。

show collections
db.test1.drop()
show collections

上記のクエリ結果は false です。 コレクションがデータベース サーバーから削除されていないか、データベースに存在しないため、結果セットの出力は false になります。

コレクションを削除する前に、問題のデータベースに接続する必要があります。 指定したデータベースに接続していない、またはアクセスしていない場合、コレクションは消去されません。

以下のクエリは、データベースからコレクションを削除する前に、指定されたデータベースを利用する方法を示しています。

db.col_stat.drop()
use test
db.col_stat.drop()
show collections

ここで、remove および drop メソッドのクエリの例を以下で説明します。

drop() メソッドを使用してコレクションを削除する

まず、show dbs コマンドを使用して、アクセス可能なデータベースのリストを表示します。

ドロップ 1

新しいデータベース mydb> を削除したい場合は、dropDatabase() コマンドを使用します。

ドロップ 2

データベースのチェックリスト。

ドロップ 3

remove() メソッドを使用してコレクションからすべてのドキュメントを削除する

mycol データセットからの次のデータを検討してください。

{_id : ObjectId("507f191e810c19729de860e1"), title: "MongoDB Overview"},
{_id : ObjectId("507f191e810c19729de860e2"), title: "NoSQL Overview"},
{_id : ObjectId("507f191e810c19729de860e3"), title: "Tutorials Point Overview"}

次の例では、MongoDB 概要 を持つすべてのレコードを削除します。

remove 1

1つだけ削除

多数のレコードがあり、最初のレコードを削除したい場合は、remove() 関数で justOne オプションを使用します。

>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

すべてのドキュメントを削除

削除基準が指定されていない場合、MongoDB はコレクションからドキュメント全体を削除します。 これは、SQL の truncate コマンドに相当します。

remove 2

データベースからすべてのデータが削除されるため、db.mycol.find() の後には何も表示されません。

コマンドラインを使用して MongoDB にデータベースをドロップする

Mongo データベースを削除する最も簡単な方法は、コマンド ラインから mongo シェル コマンドを実行し、関連するフラグとパラメーターを指定して、データベースを削除することを mongo シェルに伝えることです。

mongo シェルコマンドは、最も基本的なもので、特定のデータベースに即座に接続するために使用できます。 この例では、サーバーの bash プロンプトからデータベース bookstore に接続するために使用されます。

$ mongo bookstore
MongoDB shell version: 3.0.9
connecting to: bookstore

bookstore データベースに接続して mongo シェルからコマンドを実行する代わりに、eval フラグの後に MongoDB に実行させたい JavaScript コードを指定できます。 私たちのデータベースは、1 行で簡単にダンプできます。

このシナリオでは、データベースを削除したいと考えています。 したがって、db.dropDatabase() 関数を使用して、接続しているデータベースを破棄します。 必須ではありませんが、このコマンドの出力が理にかなっていて理解できることを保証するために、このメソッドを printjson 関数でラップします。

コマンド

heredocseval は必要ありません。mongo がインタープリターとして機能します。

var db = new Mongo().getDB('someDatabase');
db.dropDatabase();

この記事では、drop メソッドの使用方法について説明しました。 コレクションとそのインデックスを削除し、remove メソッドを使用できます。 コレクションから 1つまたはすべてのドキュメントを削除できます。

コレクションがデータベースに存在する場合、結果セットは結果を true として表示し、false 出力を表示します。 また、コマンドラインを使用してMongoDBのコレクションをドロップまたは削除する方法について説明します。