mongoDB ドキュメント(レコード)を複数件削除する

mongoDB ドキュメント(レコード)を複数件削除する

mongoDBで、ドキュメント(レコード)を複数件削除する手順を記述してます。「deleteMany」で削除したいプロパティ名を配列で指定することで削除できます。

環境

  • OS CentOS Stream release 9
  • MongoDB 6.0.2

手順

ドキュメント(レコード)を複数件削除するには、「deleteMany」を使用します。

db.foo.deleteMany({
    "プロパティ名": { $in : ["値","値"] }
})

実際に、以下のデータベース「hoge」にある「foo」というコレクション(テーブル)のドキュメント(レコード)を使用して動作を確認してみます。

> use hoge

> db.foo.find()

[
{ "_id" : ObjectId("61c3d6b0b72dd2b156014feb"), "name" : "itiro", "age" : 10, "gender" : "m" }
{ "_id" : ObjectId("61c3d6bcb72dd2b156014fec"), "name" : "jiro", "age" : 20, "gender" : "m" }
{ "_id" : ObjectId("61c3ed83471110248d164da0"), "name" : "itiro", "age" : 10, "gender" : "m" }
{ "_id" : ObjectId("61c3ed83471110248d164da1"), "name" : "jiro", "age" : 20, "gender" : "m" }
{ "_id" : ObjectId("61c3ed83471110248d164da2"), "name" : "saburo", "age" : 30, "gender" : "m" }
{ "_id" : ObjectId("61c3ed83471110248d164da3"), "name" : "jiro", "age" : 40, "gender" : "f" }
{ "_id" : ObjectId("61c3ed83471110248d164da4"), "name" : "jiro", "age" : 50, "gender" : "x" }
{ "_id" : ObjectId("61c3ed83471110248d164da5"), "name" : "jiro", "age" : 60, "gender" : "x" }
{ "_id" : ObjectId("61c3ed83471110248d164da6"), "name" : "jiro", "age" : 70, "gender" : "x" }
{ "_id" : ObjectId("61c3ed83471110248d164da7"), "name" : "jiro", "age" : 80, "gender" : "x" }
{ "_id" : ObjectId("61c3ed83471110248d164da8"), "name" : "jiro", "age" : 90, "gender" : "x" }
{ "_id" : ObjectId("61c3ed83471110248d164da9"), "name" : "jiro", "age" : 100, "gender" : "x" }
]

nameが「jiro」と「saburo」のものを削除します。

> db.foo.deleteMany({
    "name": { $in : ["jiro","saburo"] }
})

{ "acknowledged" : true, "deletedCount" : 9 }

削除されていることが確認できます。

> db.foo.find()

[
{ "_id" : ObjectId("61c56d4296ea42d9d2c7c53a"), "name" : "itiro", "age" : 10, "gender" : "m" }
]