In MongoDB de db.collection.remove()
methode verwijdert documenten uit een verzameling. Met andere woorden, het verwijdert ze.
De collection
deel is de naam van de collectie waaruit de documenten moeten worden verwijderd.
U kunt desgewenst alle documenten, sommige documenten of een enkel document verwijderen.
Alle documenten verwijderen
In dit voorbeeld verwijderen we alle documenten uit een verzameling met de naam employees
:
db.employees.remove({})
Resultaat:
WriteResult({ "nRemoved" : 5 })
Het resultaat laat zien dat vijf documenten zijn verwijderd.
Verwijder geselecteerde documenten
In dit voorbeeld verwijderen we slechts enkele documenten.
Laten we eerst onze medewerkerscollectie opnieuw vullen:
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 alle werknemers verwijderen die meer dan 80.000 per jaar verdienen.
db.employees.remove({ "salary": { $gt: 80000 } })
Resultaat:
WriteResult({ "nRemoved" : 2 })
Deze keer zijn er slechts twee documenten verwijderd.
Laten we de collectie eens bekijken.
db.employees.find()
Resultaat:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 }
Zoals verwacht hebben de twee topverdieners het bedrijf verlaten.
Eén document verwijderen
Er zijn een aantal manieren om een enkel document uit een verzameling te verwijderen. De methode die u gebruikt, hangt af van wat u moet doen.
U kunt ofwel:
- Een specifiek document verwijderen
- Gebruik de
justOne
parameter
Een specifiek document verwijderen
Als u een specifiek document moet verwijderen, kunt u de _id
. van het document opgeven waarde om dat specifieke document te verwijderen.
Dus als we bijvoorbeeld Fritz uit de bovenstaande verzameling wilden verwijderen, zouden we zijn _id
. kunnen specificeren waarde van 3
. Zoals dit:
db.employees.remove({ "_id": 3 })
Resultaat:
WriteResult({ "nRemoved" : 1 })
En laten we de collectie nog eens bekijken:
db.employees.find()
Resultaat:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 }
Zoals verwacht is Fritz nu verdwenen.
Gebruik de justOne
Parameter
U kunt ook de justOne
. gebruiken parameter om de verwijdering te beperken tot slechts één document. Hiermee wordt het eerste document verwijderd dat overeenkomt met de verwijderingscriteria.
Laten we, om dit punt zo duidelijk mogelijk aan te tonen, alle resterende documenten uit de collectie verwijderen en deze vervolgens opnieuw vullen:
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, dus we weten dat er vijf documenten in onze collectie zijn.
Laten we nu de justOne
. gebruiken parameter om een enkel document te verwijderen.
db.employees.remove({}, "justOne: true")
Resultaat:
WriteResult({ "nRemoved" : 1 })
En laten we de collectie controleren om te zien welk document is verwijderd.
db.employees.find()
Resultaat:
{ "_id" : 2, "name" : "Sarah", "salary" : 128000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Zoals verwacht is het eerste document verwijderd.
De justOne
parameter heeft ook een andere syntaxis. U kunt het ook in een document gebruiken. U moet dit doen als u andere argumenten aan de methode wilt doorgeven.
Hier is een voorbeeld.
db.employees.remove(
{},
{
justOne: true,
writeConcern: { w: "majority", wtimeout: 3000 },
collation: { locale: "de", strength: 1 }
}
)
Resultaat:
WriteResult({ "nRemoved" : 1 })
En laten we de collectie nog eens bekijken
db.employees.find()
Resultaat:
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Zoals verwacht werd het volgende document verwijderd.
Meer informatie
Zie de MongoDB-documentatie voor meer informatie.