MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB rimuovi()

In MongoDB il db.collection.remove() il metodo rimuove i documenti da una raccolta. In altre parole, li cancella.

La collection part è il nome della collezione da cui rimuovere i documenti.

Puoi eliminare tutti i documenti, alcuni documenti o un singolo documento come richiesto.

Rimuovi tutti i documenti

In questo esempio, rimuoviamo tutti i documenti da una raccolta denominata employees :

db.employees.remove({})

Risultato:

WriteResult({ "nRemoved" : 5 })

Il risultato ci mostra che sono stati rimossi cinque documenti.

Rimuovi documenti selezionati

In questo esempio, rimuoviamo solo alcuni documenti.

Per prima cosa, popola nuovamente la nostra raccolta dei dipendenti:

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

Ora rimuoviamo tutti i dipendenti che guadagnano più di 80.000 all'anno.

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

Risultato:

WriteResult({ "nRemoved" : 2 })

Questa volta sono stati rimossi solo due documenti.

Diamo un'occhiata alla collezione.

db.employees.find()

Risultato:

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

Come previsto, i due più alti salari hanno lasciato l'azienda.

Rimuovi un documento

Esistono due modi per rimuovere un singolo documento da una raccolta. Il metodo che utilizzerai dipenderà da cosa devi fare.

Puoi:

  • Rimuovi un documento specifico
  • Usa justOne parametro

Rimuovere un documento specifico

Se devi rimuovere un documento specifico, puoi specificare il _id del documento valore per rimuovere quel documento specifico.

Quindi, se volessimo rimuovere, ad esempio, Fritz dalla raccolta di cui sopra, potremmo specificare il suo _id valore di 3 . In questo modo:

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

Risultato:

WriteResult({ "nRemoved" : 1 })

E controlliamo ancora la collezione:

db.employees.find()

Risultato:

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

Come previsto, Fritz ora è scomparso.

Usa justOne Parametro

In alternativa puoi utilizzare il justOne parametro per limitare la rimozione a un solo documento. Questo elimina il primo documento che corrisponde ai criteri di eliminazione.

Per dimostrare questo punto nel modo più chiaro possibile, rimuoviamo tutti i documenti rimanenti dalla raccolta e quindi ripopoliamola:

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, quindi sappiamo che ci sono cinque documenti nella nostra collezione.

Usiamo ora il justOne parametro per rimuovere un singolo documento.

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

Risultato:

WriteResult({ "nRemoved" : 1 })

E controlliamo la raccolta per vedere quale documento è stato eliminato.

db.employees.find()

Risultato:

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

Come previsto, il primo documento è stato eliminato.

Il justOne parametro ha anche un'altra sintassi. Puoi anche usarlo all'interno di un documento. Dovrai farlo se intendi passare altri argomenti al metodo.

Ecco un esempio.

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

Risultato:

WriteResult({ "nRemoved" : 1 })

E diamo un'altra occhiata alla collezione

db.employees.find()

Risultato:

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

Come previsto, il documento successivo è stato eliminato.

Maggiori informazioni

Consulta la documentazione di MongoDB per ulteriori informazioni.