MongoDB でのコレクションのドロップまたは削除

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

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

MongoDB のコレクションの削除

MongoDB の削除コレクションには 2つの方法があります。 MongoDB データベース サーバーで drop コマンドを実行すると、出力は true または false の形式になります。

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

MongoDB からコレクションを削除するには、drop および remove メソッドを使用します。 コレクションを削除する場合は、コレクション名を追加で指定する必要があります。

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

MongoDB のデータベースからコレクションを削除するには、db.collection.drop() メソッドを使用します。 データベースからコレクションを削除し、それに接続されたインデックスを残しません。

drop() メソッドはどのように機能しますか:

  1. db.collection.drop() メソッドと drop コマンドは、ドロップされたコレクションで開かれたすべての変更ストリームに対して invalidate イベントを作成します。

  2. MongoDB 4.4 より前にインデックス構築が進行中のコレクションを削除しようとすると、エラーが発生し、コレクションは破棄されません。 プライマリ インデックスの作成を中止しても、レプリカ セットまたはシャード レプリカ セットのセカンダリ インデックスの作成は中止されません。

    代わりに、MongoDB はプライマリで指定されたインデックスの進行中のビルドを終了しようとし、成功した場合は中止 oplog アイテムを書き込みます。 インデックス ビルドをコミットまたは中止する前に、レプリケートされた進行中のビルドを持つセカンダリ メンバーは、コミットを待機するか、メインからの oplog エントリを中止します。

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

  4. MongoDB 5.0 以降の mongos から admin データベースまたは config データベースのコレクションを削除しようとすると、drop コマンドと db.collection.drop() 関数でエラーが発生します。 代わりに、構成サーバーに接続し、コマンドを実行してこれらのコレクションを削除してください。

構文:

db.collection_database.drop()

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

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

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

構文:

db.collection_database.remove ({})

コレクション データベースは、empty result set ({ }) remove メソッドを渡すとドキュメントを削除する必要があると定義されており、コレクションからすべてのレコードが削除されます。

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

query パラメーターは、クエリで指定された基準に基づいてコレクションから特定の記事を削除する機能として定義されます。 コレクションから 1つのドキュメントを削除する justone 引数が定義されています。 キーワードを true に設定して、常に有効にする必要があります。

選択基準に true キーワードを適用すると、1つのレコードのみが削除されます。 選択基準に真のキーワードを使用しなかった場合、コレクション内のすべての論文が消去されます。

Writeconcern, を使用する場合、書き込み懸念のデフォルトの使用法はスキップされます。

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

drop() メソッドを使用して、インデックスを含むコレクションをデータベースから削除します。 コレクションとそのインデックスは、ドロップ テクニックを使用してデータベース サーバーから削除されます。

remove テクニックを使用して、コレクションから特定のドキュメントを削除できます。 remove メソッドはコレクションからすべてのドキュメントを破棄しますが、インデックスはデータベース サーバーに残り、消去されません。

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

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

クエリ:

show collections
db.test1.drop()
show collections

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

以下のクエリは、データベースからコレクションを削除する前に、指定されたデータベースをどのように使用する必要があるかを示しています。

クエリ:

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

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

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

アクセス可能なデータベースを一覧表示するには、show dbs コマンドを使用します

新しいデータベース mydb>, を削除する場合は、dropDatabase() コマンドを次のように使用します。

dropDatabase()コマンドで削除

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

mydb データベースを正常にドロップ

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

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

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

次の例では、タイトル 'MongoDB Overview' を持つすべてのレコードを削除します。

MongoDB の概要というタイトルのすべてのレコードを削除します

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

>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

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

条件が指定されていない場合、コレクションからドキュメント全体を削除します

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

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

コレクションがデータベースに存在する場合、結果セットは結果を true として表示し、false 出力を表示します。

関連記事 - MongoDB Collection