MongoDB

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

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

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

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

参考書が苦手な人はUdemyの動画がおすすめ
MongoDB入門 ー 演習しながら学ぶクエリ操作

動画情報
作成者津郷 晶也
学習時間5.5時間
受講者数1,188人
レビュー (120件)
動画の詳細はこちら

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

データを追加するには、「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アクセスランキング にほんブログ村