本記事では、MongoDBでコレクションに保存されているデータ(ドキュメント)を削除する方法について解説しています。
ITエンジニア特化の転職サイト!
自社内開発求人に強い【クラウドリンク】
MongoDBの学習におすすめ参考書
RDBエンジニアでもできる!MongoDBの構築と運用入門
データ(ドキュメント)を削除
データを追加するには、「db.collection.deleteOne()」「db.collection.deleteMany()」の2つの方法があります。
データを削除するメソッドの違い
- deleteOne():削除対象のデータが一つ
- deleteMany():削除対象のデータが複数
単一のデータ(ドキュメント)を削除
単一データを削除する方法は以下のとおりです。
db.collection.deleteOne({key: value})
メソッドの解説
- collection:削除したいデータが保存されているコレクションを指定
- key:削除対象の絞り込みで使用するキー
- value:削除対象の絞り込みで使用する値
実際に単一データを削除した実行結果は以下のとおりです。
# ===== personコレクションに保存されているデータ =====
{ "_id" : ObjectId("62ca4d299ca59944c7c38a67"), "name" : "John", "age" : 18, "sex" : "man" }
{ "_id" : ObjectId("62ca4d299ca59944c7c38a68"), "name" : "Catherine", "age" : 22, "sex" : "woman" }
{ "_id" : ObjectId("62ca4d299ca59944c7c38a69"), "name" : "Michael", "age" : 25, "sex" : "man" }
# ==========================
> db.person.deleteOne({name: "John"})
{ "acknowledged" : true, "deletedCount" : 1 }
> db.person.find()
{ "_id" : ObjectId("62ca4d299ca59944c7c38a68"), "name" : "Catherine", "age" : 22, "sex" : "woman" }
{ "_id" : ObjectId("62ca4d299ca59944c7c38a69"), "name" : "Michael", "age" : 25, "sex" : "man" }
複数のデータ(ドキュメント)を削除
複数データを削除する方法は以下のとおりです。
db.collection.deleteMany({key: value})
メソッドの解説
- collection:削除したいデータが保存されているコレクションを指定
- key:削除対象の絞り込みで使用するキー
- value:削除対象の絞り込みで使用する値
使い方はdeleteOne()と変わりません。絞り込まれた削除対象のデータが複数存在した場合、それらを全て削除します。
実際に複数データを削除した実行結果は以下のとおりです。
# ===== personコレクションに保存されているデータ =====
{ "_id" : ObjectId("62ca4d299ca59944c7c38a67"), "name" : "John", "age" : 18, "sex" : "man" }
{ "_id" : ObjectId("62ca4d299ca59944c7c38a68"), "name" : "Catherine", "age" : 22, "sex" : "woman" }
{ "_id" : ObjectId("62ca4d299ca59944c7c38a69"), "name" : "Michael", "age" : 25, "sex" : "man" }
# ==========================
> db.person.deleteMany({sex: "man"})
{ "acknowledged" : true, "deletedCount" : 2 }
> db.person.find()
{ "_id" : ObjectId("62ca4d299ca59944c7c38a68"), "name" : "Catherine", "age" : 22, "sex" : "woman" }
全てのデータ(ドキュメント)を削除
全てのデータを削除する方法は以下のとおりです。
db.collection.deleteMany({})
メソッドの解説
- collection:削除したいデータが保存されているコレクションを指定
- {}:空のオブジェクトを引数に渡す
実際に全てのデータを削除した実行結果は以下のとおりです。
# ===== personコレクションに保存されているデータ =====
{ "_id" : ObjectId("62ca4d299ca59944c7c38a67"), "name" : "John", "age" : 18, "sex" : "man" }
{ "_id" : ObjectId("62ca4d299ca59944c7c38a68"), "name" : "Catherine", "age" : 22, "sex" : "woman" }
{ "_id" : ObjectId("62ca4d299ca59944c7c38a69"), "name" : "Michael", "age" : 25, "sex" : "man" }
# ==========================
> db.person.deleteMany({})
{ "acknowledged" : true, "deletedCount" : 3 }
> db.person.find()