本記事では、MongoDBでコレクションに保存されているデータ(ドキュメント)を削除する方法について解説しています。
Node.jsの学習におすすめ書籍
Node.js超入門[第4版]
メリット
- 今月出版されたNode.js超入門 第3版の改訂版
- 最新のNode.jsを学ぶことができる
ポチップ
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次
データ(ドキュメント)を削除
データを追加するには、「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()