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.