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.