W MongoDB db.collection.remove()
metoda usuwa dokumenty z kolekcji. Innymi słowy, usuwa je.
collection
część to nazwa kolekcji, z której mają zostać usunięte dokumenty.
W razie potrzeby możesz usunąć wszystkie dokumenty, niektóre dokumenty lub pojedynczy dokument.
Usuń wszystkie dokumenty
W tym przykładzie usuwamy wszystkie dokumenty z kolekcji o nazwie employees
:
db.employees.remove({})
Wynik:
WriteResult({ "nRemoved" : 5 })
Wynik pokazuje, że usunięto pięć dokumentów.
Usuń wybrane dokumenty
W tym przykładzie usuwamy tylko niektóre dokumenty.
Najpierw ponownie wypełnijmy kolekcję naszych pracowników:
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 }
])
Teraz usuńmy wszystkich pracowników, którzy zarabiają więcej niż 80 000 rocznie.
db.employees.remove({ "salary": { $gt: 80000 } })
Wynik:
WriteResult({ "nRemoved" : 2 })
Tym razem usunięto tylko dwa dokumenty.
Przyjrzyjmy się kolekcji.
db.employees.find()
Wynik:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 }
Zgodnie z oczekiwaniami, dwóch najlepiej zarabiających odeszło z firmy.
Usuń jeden dokument
Istnieje kilka sposobów na usunięcie pojedynczego dokumentu z kolekcji. Metoda, której użyjesz, będzie zależeć od tego, co musisz zrobić.
Możesz:
- Usuń określony dokument
- Użyj
justOne
parametr
Usuń określony dokument
Jeśli chcesz usunąć określony dokument, możesz określić jego _id
wartość, aby usunąć ten konkretny dokument.
Jeśli więc chcielibyśmy usunąć, powiedzmy, Fritz z powyższej kolekcji, moglibyśmy określić jego _id
wartość 3
. Tak:
db.employees.remove({ "_id": 3 })
Wynik:
WriteResult({ "nRemoved" : 1 })
I jeszcze raz sprawdźmy kolekcję:
db.employees.find()
Wynik:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 }
Zgodnie z oczekiwaniami Fritz zniknął.
Użyj justOne
Parametr
Możesz alternatywnie użyć justOne
parametr, aby ograniczyć usuwanie tylko do jednego dokumentu. Spowoduje to usunięcie pierwszego dokumentu, który spełnia kryteria usuwania.
Aby jak najdokładniej zademonstrować ten punkt, usuńmy wszystkie pozostałe dokumenty z kolekcji, a następnie wypełnijmy je ponownie:
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, więc wiemy, że w naszej kolekcji jest pięć dokumentów.
Użyjmy teraz justOne
parametr, aby usunąć pojedynczy dokument.
db.employees.remove({}, "justOne: true")
Wynik:
WriteResult({ "nRemoved" : 1 })
Sprawdźmy też kolekcję, aby zobaczyć, który dokument został usunięty.
db.employees.find()
Wynik:
{ "_id" : 2, "name" : "Sarah", "salary" : 128000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Zgodnie z oczekiwaniami pierwszy dokument został usunięty.
justOne
parametr ma również inną składnię. Możesz go również użyć w dokumencie. Musisz to zrobić, jeśli zamierzasz przekazać inne argumenty do metody.
Oto przykład.
db.employees.remove(
{},
{
justOne: true,
writeConcern: { w: "majority", wtimeout: 3000 },
collation: { locale: "de", strength: 1 }
}
)
Wynik:
WriteResult({ "nRemoved" : 1 })
Przyjrzyjmy się jeszcze raz kolekcji
db.employees.find()
Wynik:
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
Zgodnie z oczekiwaniami następny dokument został usunięty.
Więcej informacji
Więcej informacji znajdziesz w dokumentacji MongoDB.