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

MongoDB remove()

    MongoDBでは、db.collection.remove() メソッドは、コレクションからドキュメントを削除します。つまり、それらを削除します。

    collection partは、ドキュメントを削除するコレクションの名前です。

    必要に応じて、すべてのドキュメント、一部のドキュメント、または1つのドキュメントを削除できます。

    すべてのドキュメントを削除

    この例では、employeesというコレクションからすべてのドキュメントを削除します。 :

    db.employees.remove({})

    結果:

    WriteResult({ "nRemoved" : 5 })

    結果は、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 }
        ])

    それでは、年間80,000を超える収益を上げているすべての従業員を削除しましょう。

    db.employees.remove({ "salary": { $gt: 80000 } })

    結果:

    WriteResult({ "nRemoved" : 2 })

    今回は2つのドキュメントのみが削除されました。

    コレクションを見てみましょう。

    db.employees.find()

    結果:

    { "_id" : 1, "name" : "Sandy", "salary" : 55000 }
    { "_id" : 3, "name" : "Fritz", "salary" : 25000 }
    { "_id" : 4, "name" : "Chris", "salary" : 45000 }

    予想通り、2人のトップ給与稼ぎ手が会社を辞めました。

    1つのドキュメントを削除

    コレクションから単一のドキュメントを削除するには、いくつかの方法があります。使用する方法は、何をする必要があるかによって異なります。

    次のいずれかを実行できます:

    • 特定のドキュメントを削除する
    • justOneを使用する パラメータ

    特定のドキュメントを削除する

    特定のドキュメントを削除する必要がある場合は、ドキュメントの_idを指定できます その特定のドキュメントを削除する値。

    したがって、上記のコレクションからたとえばフリッツを削除したい場合は、彼の_idを指定できます。 3の値 。このように:

    db.employees.remove({ "_id": 3 })

    結果:

    WriteResult({ "nRemoved" : 1 })

    そして、コレクションをもう一度確認しましょう:

    db.employees.find()

    結果:

    { "_id" : 1, "name" : "Sandy", "salary" : 55000 }
    { "_id" : 4, "name" : "Chris", "salary" : 45000 }

    予想通り、フリッツは姿を消しました。

    justOneを使用する パラメータ

    または、justOneを使用することもできます 削除を1つのドキュメントのみに制限するパラメータ。これにより、削除基準に一致する最初のドキュメントが削除されます。

    この点をできるだけ明確に示すために、コレクションから残りのすべてのドキュメントを削除してから、再入力してみましょう。

    db.employees.remove({})
    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 }
        ])

    OK、コレクションに5つのドキュメントがあることがわかりました。

    justOneを使用してみましょう 単一のドキュメントを削除するためのパラメータ。

    db.employees.remove({}, "justOne: true")

    結果:

    WriteResult({ "nRemoved" : 1 })

    そして、コレクションをチェックして、削除されたドキュメントを確認しましょう。

    db.employees.find()

    結果:

    { "_id" : 2, "name" : "Sarah", "salary" : 128000 }
    { "_id" : 3, "name" : "Fritz", "salary" : 25000 }
    { "_id" : 4, "name" : "Chris", "salary" : 45000 }
    { "_id" : 5, "name" : "Beck", "salary" : 82000 }

    予想どおり、最初のドキュメントが削除されました。

    justOne パラメータにも別の構文があります。ドキュメント内でも使用できます。メソッドに他の引数を渡す場合は、これを行う必要があります。

    これが例です。

    db.employees.remove(
        {}, 
        {
            justOne: true,
            writeConcern: { w: "majority", wtimeout: 3000 },
            collation: { locale: "de", strength: 1 }
        }
    )

    結果:

    WriteResult({ "nRemoved" : 1 })

    そして、コレクションをもう一度見てみましょう

    db.employees.find()

    結果:

    { "_id" : 3, "name" : "Fritz", "salary" : 25000 }
    { "_id" : 4, "name" : "Chris", "salary" : 45000 }
    { "_id" : 5, "name" : "Beck", "salary" : 82000 }

    予想どおり、次のドキュメントが削除されました。

    詳細情報

    詳細については、MongoDBのドキュメントを参照してください。


    1. 原因:java.lang.IllegalArgumentException:CONTAINING(1):[IsContaining、Containing、Contains]はredisクエリの派生ではサポートされていません-Redis

    2. Meteor:予期しないmongo終了コード100

    3. StackExchange.Redisで基本的なウォッチを行う方法

    4. MongoDBで特定の名前のインデックスを作成する方法