In MongoDB il db.collection.deleteOne()
il metodo rimuove un singolo documento da una raccolta. In altre parole, lo cancella.
La collection
part è il nome della raccolta da cui rimuovere il documento.
Esempio
Popoliamo una raccolta chiamata employees
con cinque documenti:
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 }
])
Usiamo ora db.collection.deleteOne()
per eliminare uno di quei documenti.
db.employees.deleteOne({ "_id": 4 })
Risultato:
{ "acknowledged" : true, "deletedCount" : 1 }
Questo dipendente ha cancellato il numero 4.
Diamo un'occhiata alla collezione da verificare.
db.employees.find()
Risultato:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 2, "name" : "Sarah", "salary" : 128000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Possiamo vedere che il dipendente numero 4 non esiste più nella collezione.
Utilizzo di una condizione più ampia
Nell'esempio precedente, abbiamo utilizzato _id
campo del dipendente che volevamo eliminare. Perché il _id
field è l'identificatore univoco per ogni documento, questo ci ha permesso di eliminare il documento esatto che volevamo eliminare.
È anche possibile eliminare un singolo documento senza essere così precisi su quale viene eliminato. Ad esempio, puoi utilizzare un filtro ampio che restituisce molti documenti, ma elimina solo il primo documento da quei risultati.
Ad esempio, potremmo filtrare per dipendenti che guadagnano più di 80.000 all'anno, quindi eliminare il primo documento in quel gruppo.
db.employees.deleteOne({ "salary": { $gt: 80000 } })
Risultato:
{ "acknowledged" : true, "deletedCount" : 1 }
In questo esempio, è stato eliminato solo un documento, anche se c'erano due documenti che corrispondevano ai criteri.
Possiamo dare un'occhiata alla raccolta per vedere quale è stata eliminata.
db.employees.find()
Risultato:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Possiamo anche fare un ulteriore passo avanti e rimuovere tutti i filtri, il che significa che sceglie da tutti i documenti nella raccolta.
db.employees.deleteOne({})
Risultato:
{ "acknowledged" : true, "deletedCount" : 1 }
Ancora una volta possiamo controllare la raccolta per vedere quale è stata eliminata.
db.employees.find()
Risultato:
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Come previsto, il primo documento è stato eliminato.
Maggiori informazioni
Il db.collection.deleteOne()
accetta anche parametri opzionali come collation
, hint
e writeConcern
.
Consulta la documentazione di MongoDB per ulteriori informazioni.