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

【MongoDB入門】remove()メソッドでドキュメントを削除する方法を解説

MongoDBでドキュメントを削除する方法

MongoDBでコレクション内のドキュメントを削除するには、remove()メソッドを使用します。本記事では、実際のコマンド例を交えながら、コレクションの作成からドキュメントの削除、削除結果の確認までの一連の流れをわかりやすく解説します。

1. サンプルコレクションの作成

まず、insertOne()メソッドを使って、ドキュメントを格納するコレクションを作成しましょう。

> db.demo79.insertOne({"Name":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2bdb2271bf0181ecc42293")
}
> db.demo79.insertOne({"Name":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2bdb2671bf0181ecc42294")
}
> db.demo79.insertOne({"Name":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2bdb2971bf0181ecc42295")
}
> db.demo79.insertOne({"Name":"Mike"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2bdb2c71bf0181ecc42296")
}

これで、「Chris」「David」「Bob」「Mike」の4つのドキュメントを持つコレクションが完成しました。

2. 登録済みドキュメントの確認

find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。

> db.demo79.find();

実行すると、以下のような出力が得られます。

{ "_id" : ObjectId("5e2bdb2271bf0181ecc42293"), "Name" : "Chris" }
{ "_id" : ObjectId("5e2bdb2671bf0181ecc42294"), "Name" : "David" }
{ "_id" : ObjectId("5e2bdb2971bf0181ecc42295"), "Name" : "Bob" }
{ "_id" : ObjectId("5e2bdb2c71bf0181ecc42296"), "Name" : "Mike" }

3. remove()メソッドでドキュメントを削除する

MongoDBでドキュメントを削除するための基本的なクエリは以下のとおりです。ここでは、「Name」が「Bob」であるドキュメントを削除対象として指定しています。

> db.demo79.remove({"Name":"Bob"});
WriteResult({ "nRemoved" : 1 })

WriteResult({ "nRemoved" : 1 })という出力は、1件のドキュメントが正常に削除されたことを示しています。

4. 削除後のドキュメントを確認する

削除が完了したら、再度find()メソッドを実行して結果を確認しましょう。

> db.demo79.find();

以下の出力のとおり、「Bob」のドキュメントが正常に削除されていることがわかります。

{ "_id" : ObjectId("5e2bdb2271bf0181ecc42293"), "Name" : "Chris" }
{ "_id" : ObjectId("5e2bdb2671bf0181ecc42294"), "Name" : "David" }
{ "_id" : ObjectId("5e2bdb2c71bf0181ecc42296"), "Name" : "Mike" }

補足:remove()とdeleteOne() / deleteMany()の違い

なお、MongoDBの新しいバージョン(v4.2以降)では、remove()メソッドは非推奨となっており、代わりに以下のメソッドの使用が推奨されています。

  • deleteOne():条件に一致する最初の1件だけを削除する
  • deleteMany():条件に一致するすべてのドキュメントを削除する

たとえば、上記と同じ処理はdb.demo79.deleteOne({"Name":"Bob"})と書き換えることで実現できます。条件に一致するドキュメントが複数存在する可能性がある場合は、意図しない削除を防ぐためにも、deleteOne()deleteMany()を適切に使い分けるようにしましょう。

  1. MongoDBでドキュメントのフィールドにアクセスする方法|find()とプロジェクションの使い方

    MongoDBでドキュメント内のフィールドにアクセスするには、find()メソッドを使用します。この記事では、実際にコレクションを作成し、ドキュメントを挿入したうえで、特定のフィールドだけを取得する方法をサンプルコード付きで解説します。 コレクションの作成とドキュメントの挿入 まず、サンプル用のコレクション「demo565」を作成し、3件のドキュメントを挿入します。insertOne()メソッドを使って、1件ずつ登録していきましょう。 > db.demo565.insertOne( ... { ... id:101, ... Name:David, ... Countr

  2. Javaを使用してMongoDBのドキュメントを削除するには?基本とサンプルコード解説

    MongoDBでは、既存のコレクションからドキュメントを削除する際に remove() メソッドを使用できます。本記事では、MongoDBシェルでの削除方法と、Javaプログラムからドキュメントを削除する方法を順を追って解説します。 構文 db.coll.remove(削除条件) 各要素の意味は以下のとおりです。 db: 操作対象のデータベース coll: ドキュメントを削除したいコレクション名 例 MongoDBデータベースに students というコレクションがあり、次のドキュメントが登録されていると仮定します。 {name:Ram, age:26, city:Mumbai} {na