MongoDB

【MongoDB】データ(ドキュメント)を削除する方法

本記事では、MongoDBでコレクションに保存されているデータ(ドキュメント)を削除する方法について解説しています。

ITエンジニア特化の転職サイト!
自社内開発求人に強い【クラウドリンク】

先輩くん
先輩くん
年収、休日数、労働環境等クラウドリンクが審査し、これらを通過した優良求人情報のみ紹介しているよ!
後輩ちゃん
後輩ちゃん
100%自社内開発の求人だから、SESのように職場環境が変わらないのがいいね!
簡単30秒で無料登録!

MongoDBの学習におすすめ参考書
RDBエンジニアでもできる!MongoDBの構築と運用入門

本書情報
出版社インプレスR&D
著者目黒 聖
発売日2021/12/10
ページ数140ページ
Kindle版
(電子書籍)

データ(ドキュメント)を削除

データを追加するには、「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()

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村