MongoDBでは、mongoシェルでドキュメントを削除する必要がある場合は、次を使用できます。
-
db.collection.remove()
メソッド 削除コード> コマンド
-
db.collection.deleteOne()
メソッド -
db.collection.deleteMany()
メソッド
この記事では、それぞれの例を示します。
db.collection.remove()
方法
db.collection.remove()
メソッドは、コレクションからドキュメントを削除(つまり削除)します。必要に応じて、すべてのドキュメント、一部のドキュメント、または1つのドキュメントを削除できます。
特定のドキュメントを削除する例を次に示します。
db.employees.remove({ "_id": 3 })
結果:
WriteResult({ "nRemoved" : 1 })
これにより、 _id
のドキュメントが削除されます 3
の値 従業員
から コレクション。
ただし、単一のドキュメントと一致する必要はありません。フィルタ条件は複数のドキュメントに一致する可能性があり、フィルタ基準を空白のままにしてすべてのドキュメントに一致させることもできます(つまり、すべてのドキュメントを削除します)。
すべてのドキュメントを削除する例を次に示します。
db.employees.remove({})
結果:
WriteResult({ "nRemoved" : 5 })
結果は、5つのドキュメントが削除されたことを示しています(したがって、すべてを削除する前に、コレクションには明らかに5つのドキュメントが含まれていました)。
remove()
メソッドはjustOne
も受け入れます 削除を1つのドキュメントのみに制限するパラメータ。これにより、削除基準に一致する最初のドキュメントが削除されます。
例:
db.employees.remove({}, "justOne: true")
結果:
WriteResult({ "nRemoved" : 1 })
この場合、フィルター基準は空のドキュメントであるため、コレクション内のすべてのドキュメントと一致します。ただし、 justOne:true
を使用しているため、削除されるドキュメントは1つだけです。 。
削除コード> コマンド
delete
コマンドは、 remove()
とまったく同じことを行います 方法。実際、 remove()
メソッドは削除コマンドを使用します。
delete
を使用して特定のドキュメントを削除する例を次に示します。 コマンド。
db.runCommand(
{
delete: "employees",
deletes: [ { q: { _id: 4 }, limit: 1 } ]
}
)
結果:
{ "n" : 1, "ok" : 1 }
db.collection.deleteOne()
方法
db.collection.deleteOne()
メソッドはdb.collection.remove()
に似ています 指定されたコレクションから1つのドキュメントのみを削除することを除いて、メソッド。
db.collection.remove()
と同様に、フィルター条件を受け入れます。 。
例:
db.employees.deleteOne({ "_id": 4 })
結果:
{ "acknowledged" : true, "deletedCount" : 1 }
これにより、従業員番号4が削除されました。
複数のドキュメントを返すより広範なフィルターを提供すると、最初のドキュメントのみが削除されます。
たとえば、次の例では、コレクション内のドキュメントの数に関係なく、コレクション内の最初のドキュメントが削除されます。
db.employees.deleteOne({})
db.collection.deleteOne()
メソッドは、誤って複数のドキュメントを削除することを心配している場合に使用するのに便利な方法です。削除されるドキュメントのほとんどは1つであるため、「ファットフィンガー」を間違えた場合でも、コレクションからすべてのドキュメントを誤って削除することはありません(もちろん、コレクションにドキュメントが1つしかない場合を除く)。
db.collection.deleteMany()
方法
db.collection.deleteMany()
メソッドはdb.collection.deleteOne()
に似ています ただし、複数のドキュメントを削除できます。
実際には、おそらく remove()
のようなものです 、複数のドキュメントと1つのドキュメントを削除できるため( justOne
はありませんが) remove()
のようなパラメータ
この方法は、特定の条件に一致するすべてのドキュメントを削除する場合に便利です。
例:
db.employees.deleteMany({ "salary": { $gt: 80000 } })
結果:
{ "acknowledged" : true, "deletedCount" : 2 }
これにより、 salary
を持つすべてのドキュメントが削除されました フィールドが80000を超えています。この場合、一致したドキュメントは2つだけですが、任意の数である可能性があります。
db.collection.deleteMany()
を使用することもできます コレクションからすべてのドキュメントを削除します。
例:
db.employees.deleteMany({})
結果:
{ "acknowledged" : true, "deletedCount" : 5 }
この場合、コレクションには5つのドキュメントがあり、5つすべてが削除されました。
詳細情報
上記のメソッドは、 writeConcern
などのいくつかのオプションの引数も受け入れます。 およびcollation
。
deleteOne()
およびdeleteMany()
ヒント
も受け入れる 引数。
以下は、各メソッド/コマンドのMongoDBドキュメントへのリンクです。
-
db.collection.remove()
削除
-
db.collection.deleteOne()
-
db.collection.deleteMany()