W MongoDB db.collection.deleteOne()
Metoda usuwa pojedynczy dokument z kolekcji. Innymi słowy, usuwa go.
collection
część to nazwa kolekcji, z której ma zostać usunięty dokument.
Przykład
Wypełnijmy kolekcję o nazwie employees
z pięcioma dokumentami:
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 }
])
Użyjmy teraz db.collection.deleteOne()
aby usunąć jeden z tych dokumentów.
db.employees.deleteOne({ "_id": 4 })
Wynik:
{ "acknowledged" : true, "deletedCount" : 1 }
Ten usunięty pracownik numer 4.
Przyjrzyjmy się kolekcji do weryfikacji.
db.employees.find()
Wynik:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 2, "name" : "Sarah", "salary" : 128000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Widzimy, że pracownik numer 4 już nie istnieje w kolekcji.
Korzystanie z szerszego warunku
W poprzednim przykładzie użyliśmy _id
pole pracownika, którego chcieliśmy usunąć. Ponieważ _id
pole jest unikalnym identyfikatorem dla każdego dokumentu, co pozwoliło nam usunąć dokładnie ten dokument, który chcieliśmy usunąć.
Możliwe jest również usunięcie pojedynczego dokumentu bez dokładnego określenia, który z nich zostanie usunięty. Na przykład możesz użyć szerokiego filtra, który zwraca wiele dokumentów, ale usuwa tylko pierwszy dokument z tych wyników.
Na przykład możemy filtrować według pracowników, którzy zarabiają więcej niż 80 000 rocznie, a następnie usunąć pierwszy dokument z tej grupy.
db.employees.deleteOne({ "salary": { $gt: 80000 } })
Wynik:
{ "acknowledged" : true, "deletedCount" : 1 }
W tym przykładzie tylko jeden dokument został usunięty, mimo że były dwa dokumenty spełniające kryteria.
Możemy spojrzeć na kolekcję, aby zobaczyć, która została usunięta.
db.employees.find()
Wynik:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Możemy nawet pójść o krok dalej i usunąć wszystkie filtry, co oznacza, że wybiera spośród wszystkich dokumentów w kolekcji.
db.employees.deleteOne({})
Wynik:
{ "acknowledged" : true, "deletedCount" : 1 }
Jeszcze raz możemy sprawdzić kolekcję, aby zobaczyć, która została usunięta.
db.employees.find()
Wynik:
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Zgodnie z oczekiwaniami pierwszy dokument został usunięty.
Więcej informacji
db.collection.deleteOne()
metoda akceptuje również parametry opcjonalne, takie jak collation
, hint
i writeConcern
.
Więcej informacji znajdziesz w dokumentacji MongoDB.