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

MongoDB deleteOne()

    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のドキュメントを参照してください。


    1. 1回の呼び出しでオブジェクトの配列をマングースの配列にプッシュする方法は?

    2. SymfonyにRedisキャッシュプレフィックスキーを設定します

    3. 日付間隔でグループ化

    4. MySQLおよびPostgreSQLの新しいバックアップ管理およびセキュリティ機能:ClusterControlリリース1.6.2