MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBのコレクションからすべてのドキュメントを削除する方法|deleteMany()の使い方を解説

MongoDBでコレクション内の全ドキュメントを削除するには?

MongoDBのコレクションからすべてのドキュメントを一括削除したい場合は、deleteMany()メソッドを使用します。条件として空のオブジェクト {} を渡すことで、コレクション内の全ドキュメントが削除対象になります。

この記事では、実際にサンプルコレクションを作成してドキュメントを挿入し、その後すべてのドキュメントを削除するまでの手順を順番に解説します。

手順1:コレクションの作成とドキュメントの挿入

まず、テスト用のコレクション「deleteDocumentsDemo」を作成し、3件のドキュメントを挿入します。

> db.deleteDocumentsDemo.insert({"Name":"Larry","Age":23});
WriteResult({ "nInserted" : 1 })
> db.deleteDocumentsDemo.insert({"Name":"Mike","Age":21});
WriteResult({ "nInserted" : 1 })
> db.deleteDocumentsDemo.insert({"Name":"Sam","Age":24});
WriteResult({ "nInserted" : 1 })

手順2:挿入されたドキュメントの確認

次に、find()メソッドを使って、コレクション内のすべてのドキュメントを表示してみましょう。クエリは以下のとおりです。

> db.deleteDocumentsDemo.find().pretty();

実行結果は以下のようになります。

{
    "_id" : ObjectId("5c6ab0e064f3d70fcc914805"),
    "Name" : "Larry",
    "Age" : 23
}
{
    "_id" : ObjectId("5c6ab0ef64f3d70fcc914806"),
    "Name" : "Mike",
    "Age" : 21
}
{
    "_id" : ObjectId("5c6ab0f864f3d70fcc914807"),
    "Name" : "Sam",
    "Age" : 24
}

手順3:deleteMany()ですべてのドキュメントを削除する

続いて、deleteMany()に空のフィルター {} を指定して実行します。これにより、コレクション内の全ドキュメントが一度に削除されます。

> db.deleteDocumentsDemo.deleteMany({});

実行結果は以下のとおりです。

{ "acknowledged" : true, "deletedCount" : 3 }

削除結果の確認

上記の出力を見ると、「acknowledged: true」で処理が正常に完了し、「deletedCount: 3」によって3件のドキュメントが削除されたことがわかります。つまり、deleteMany()メソッドを使って「deleteDocumentsDemo」コレクションからすべてのドキュメントを正常に削除できたということです。

補足:remove()やdrop()との違い

なお、MongoDB 3.2以降では旧来のremove()メソッドは非推奨となっており、代わりにdeleteMany()やdeleteOne()の使用が推奨されています。また、インデックス定義ごとコレクション自体を完全に削除したい場合はdrop()メソッドを使用します。ドキュメントだけを削除してインデックスなどの構造は残したい場合は、本記事で紹介したdeleteMany({})が最適な方法です。

  1. MongoDBでコレクション内のドキュメント数を制限する方法(Capped Collectionの使い方)

    MongoDBでコレクション内のドキュメント数を制限するには?MongoDBのコレクションに保存できるドキュメントの数を制限したい場合は、「capped: true」を指定してCapped Collection(キャップドコレクション)を作成します。作成時にsize(最大サイズ)やmax(最大ドキュメント数)を設定することで、コレクションの容量と件数の上限を定義できます。Capped CollectionとはCapped Collectionは、挿入順にドキュメントを保持し、上限に達すると最も古いドキュメントから自動的に削除される固定サイズのコレクションです。ログデータやキャッシュなど、最新の

  2. Javaを使ってMongoDBコレクションからすべてのドキュメントを取得する方法

    MongoDBでは、find()メソッドを使用することで、既存のコレクションからドキュメントを取得できます。この記事では、MongoDBシェルでの基本操作と、Javaプログラムからすべてのドキュメントを取得する手順について詳しく解説します。MongoDBシェルでの構文db.coll.find()各要素の意味は以下のとおりです。db:対象となるデータベースcoll:ドキュメントを取得したいコレクションの名前シェルでの実行例ここでは、MongoDBデータベース内に「students」というコレクションがあり、次のドキュメントが登録されているものとします。{name:"Ram",