sql >> Database >  >> NoSQL >> MongoDB

MongoDB verwijderen()

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.


  1. Kunnen redis-sleutelruimtemeldingen naar de redis-stream worden gepusht in plaats van pub/sub-kanaal?

  2. Redis Client List doel en beschrijving

  3. Inleiding tot gedistribueerde cache in Hadoop

  4. Hoe Redis implementeren in CodeIgniter?