sql >> データベース >  >> NoSQL >> MongoDB

MongoDBでドキュメントを削除する4つの方法

    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などのいくつかのオプションの引数も受け入れます。 およびcollat​​ion

    deleteOne() およびdeleteMany() ヒントも受け入れる 引数。

    以下は、各メソッド/コマンドのMongoDBドキュメントへのリンクです。

    • db.collection.remove()
    • 削除
    • db.collection.deleteOne()
    • db.collection.deleteMany()

    1. バックアップを使用してMongoDBの一般的な障害シナリオを修正する

    2. Redisでソートされたセットの範囲から新しいセットを作成する

    3. Dockerコンテナ(Python、Flask、Redis)内でカスタムRQワーカーを起動する方法

    4. MongoDB C#ドライバーを使用してMongoDBコレクションが作成された日付を取得するにはどうすればよいですか?