sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB remove()

I MongoDB används db.collection.remove() metod tar bort dokument från en samling. Med andra ord, det tar bort dem.

collection del är namnet på den samling som dokumenten ska tas bort från.

Du kan ta bort alla dokument, vissa dokument eller ett enda dokument efter behov.

Ta bort alla dokument

I det här exemplet tar vi bort alla dokument från en samling som heter employees :

db.employees.remove({})

Resultat:

WriteResult({ "nRemoved" : 5 })

Resultatet visar att fem dokument togs bort.

Ta bort markerade dokument

I det här exemplet tar vi bara bort vissa dokument.

Låt oss först fylla i vår personalsamling igen:

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

Låt oss nu ta bort alla anställda som tjänar mer än 80 000 per år.

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

Resultat:

WriteResult({ "nRemoved" : 2 })

Den här gången togs bara två dokument bort.

Låt oss ta en titt på samlingen.

db.employees.find()

Resultat:

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

Som väntat har de två högsta löntagarna lämnat företaget.

Ta bort ett dokument

Det finns ett par sätt att ta bort ett enstaka dokument från en samling. Metoden du använder beror på vad du behöver göra.

Du kan antingen:

  • Ta bort ett specifikt dokument
  • Använd justOne parameter

Ta bort ett specifikt dokument

Om du behöver ta bort ett specifikt dokument kan du ange dokumentets _id värde för att ta bort det specifika dokumentet.

Så om vi vill ta bort säg, Fritz från samlingen ovan, kan vi specificera hans _id värdet 3 . Så här:

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

Resultat:

WriteResult({ "nRemoved" : 1 })

Och låt oss kolla in samlingen igen:

db.employees.find()

Resultat:

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

Som väntat har Fritz nu försvunnit.

Använd justOne Parameter

Du kan alternativt använda justOne parameter för att begränsa borttagningen till bara ett dokument. Detta tar bort det första dokumentet som matchar raderingskriterierna.

För att visa detta så tydligt som möjligt, låt oss ta bort alla återstående dokument från samlingen och sedan fylla i den igen:

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, så vi vet att det finns fem dokument i vår samling.

Låt oss nu använda justOne parameter för att ta bort ett enstaka dokument.

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

Resultat:

WriteResult({ "nRemoved" : 1 })

Och låt oss kontrollera samlingen för att se vilket dokument som togs bort.

db.employees.find()

Resultat:

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

Som väntat togs det första dokumentet bort.

justOne parametern har också en annan syntax. Du kan också använda den i ett dokument. Du måste göra detta om du ska skicka andra argument till metoden.

Här är ett exempel.

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

Resultat:

WriteResult({ "nRemoved" : 1 })

Och låt oss ta en ny titt på samlingen

db.employees.find()

Resultat:

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

Som väntat raderades nästa dokument.

Mer information

Se MongoDB-dokumentationen för mer information.


  1. Redis tar inte upp Broadcast-evenemang i Laravel 5.1

  2. docker:MISCONF Redis är konfigurerad för att spara RDB-ögonblicksbilder

  3. Ett prestationsfuskblad för MongoDB

  4. Hantera anslutningar