MongoDBでは、db.collection.deleteOne()
メソッドは、コレクションから1つのドキュメントを削除します。つまり、削除します。
collection
partは、ドキュメントを削除するコレクションの名前です。
例
employees
というコレクションにデータを入力しましょう 5つのドキュメントで:
db.employees.insertMany([
{ _id: 1, name: "Sandy", salary: 55000 },
{ _id: 2, name: "Sarah", salary: 128000 },
{ _id: 3, name: "Fritz", salary: 25000 },
{ _id: 4, name: "Chris", salary: 45000 },
{ _id: 5, name: "Beck", salary: 82000 }
])
db.collection.deleteOne()
を使用してみましょう それらのドキュメントの1つを削除します。
db.employees.deleteOne({ "_id": 4 })
結果:
{ "acknowledged" : true, "deletedCount" : 1 }
これにより、従業員番号4が削除されました。
コレクションを見て確認しましょう。
db.employees.find()
結果:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 2, "name" : "Sarah", "salary" : 128000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
従業員番号4がコレクションに存在しなくなっていることがわかります。
より広い条件を使用する
前の例では、_id
を使用しました 削除したい従業員のフィールド。 _id
フィールドは各ドキュメントの一意の識別子です。これにより、削除したいドキュメントを正確に削除できました。
削除するドキュメントをそれほど正確にせずに、1つのドキュメントを削除することもできます。たとえば、多くのドキュメントを返す広範なフィルタを使用できますが、それらの結果から最初のドキュメントのみを削除します。
たとえば、年間80,000を超える収益を上げている従業員でフィルタリングしてから、そのグループの最初のドキュメントを削除することができます。
db.employees.deleteOne({ "salary": { $gt: 80000 } })
結果:
{ "acknowledged" : true, "deletedCount" : 1 }
この例では、基準に一致するドキュメントが2つあったとしても、削除されたドキュメントは1つだけです。
コレクションを見て、どのコレクションが削除されたかを確認できます。
db.employees.find()
結果:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
さらに一歩進んですべてのフィルターを削除することもできます。つまり、コレクション内のすべてのドキュメントから選択されます。
db.employees.deleteOne({})
結果:
{ "acknowledged" : true, "deletedCount" : 1 }
もう一度、コレクションをチェックして、削除されたコレクションを確認できます。
db.employees.find()
結果:
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
予想どおり、最初のドキュメントが削除されました。
詳細情報
db.collection.deleteOne()
メソッドは、collation
などのオプションのパラメーターも受け入れます 、hint
、およびwriteConcern
。
詳細については、MongoDBのドキュメントを参照してください。