sql >> Database >  >> NoSQL >> MongoDB

MongoDB deleteOne()

In MongoDB de db.collection.deleteOne() methode verwijdert een enkel document uit een verzameling. Met andere woorden, het verwijdert het.

De collection deel is de naam van de verzameling waaruit het document moet worden verwijderd.

Voorbeeld

Laten we een verzameling vullen met de naam employees met vijf documenten:

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 }
    ])

Laten we nu db.collection.deleteOne() . gebruiken om een ​​van die documenten te verwijderen.

db.employees.deleteOne({ "_id": 4 })

Resultaat:

{ "acknowledged" : true, "deletedCount" : 1 }

Dit verwijderde werknemer nummer 4.

Laten we de collectie eens bekijken om te verifiëren.

db.employees.find()

Resultaat:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 2, "name" : "Sarah", "salary" : 128000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

We zien dat medewerker nummer 4 niet meer in de collectie voorkomt.

Een bredere voorwaarde gebruiken

In het vorige voorbeeld gebruikten we de _id veld van de medewerker die we wilden verwijderen. Omdat de _id veld is de unieke identificatie voor elk document, hierdoor konden we het exacte document verwijderen dat we wilden verwijderen.

Het is ook mogelijk om een ​​enkel document te verwijderen zonder zo precies te zijn over welk document wordt verwijderd. U kunt bijvoorbeeld een brede filter gebruiken die veel documenten retourneert, maar alleen het eerste document uit die resultaten verwijderen.

We kunnen bijvoorbeeld filteren op werknemers die meer dan 80.000 per jaar verdienen en vervolgens het eerste document in die groep verwijderen.

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

Resultaat:

{ "acknowledged" : true, "deletedCount" : 1 }

In dit voorbeeld werd slechts één document verwijderd, hoewel er twee documenten waren die aan de criteria voldeden.

We kunnen de collectie bekijken om te zien welke is verwijderd.

db.employees.find()

Resultaat:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

We kunnen zelfs een stap verder gaan en alle filters verwijderen, wat betekent dat het kiest uit alle documenten in de collectie.

db.employees.deleteOne({})

Resultaat:

{ "acknowledged" : true, "deletedCount" : 1 }

Opnieuw kunnen we de collectie controleren om te zien welke is verwijderd.

db.employees.find()

Resultaat:

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

Zoals verwacht is het eerste document verwijderd.

Meer informatie

De db.collection.deleteOne() methode accepteert ook optionele parameters zoals collation , hint , en writeConcern .

Zie de MongoDB-documentatie voor meer informatie.


  1. Leidt elke aanroep binnen een multi()-aanroep in phpredis tot een nieuwe netwerkrondreis naar redis?

  2. MongoDB $converteren

  3. MongoDB Index op verschillende typen

  4. Moet u MongoDB-journaling inschakelen?