W MongoDB możesz usuwać dokumenty za pomocą jednej z trzech metod.
MongoDB udostępnia trzy metody usuwania dokumentów:
db.collection.deleteOne()db.collection.deleteMany()db.collection.remove()
db.collection.deleteOne() Metoda
db.collection.deleteOne() usuwa tylko jeden dokument, nawet jeśli więcej niż jeden dokument spełnia kryteria.
Oto przykład db.collection.deleteOne() metoda usuwania pojedynczego dokumentu.
Najpierw uruchommy zapytanie, które zwróci wiele wyników:
db.artists.find( { nazwa wykonawcy:{ $in:[ "Kooks", "Gang of Four", "Bastille" ] } } ) Wyniki:
{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" :"The Kooks" }{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" :"Bastille" :}{ "Object ("5781d7f248ef8c6b3ffb014f"), "nazwisko wykonawcy" :"Gang Czterech" } OK, więc wiemy, że istnieją trzy dokumenty, które spełniają te kryteria.
Teraz użyjmy dokładnie tych samych kryteriów filtrowania dla naszej db.collection.deleteOne() metoda:
db.artists.deleteOne( { nazwa artysty:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } } ) Wiadomość wynikowa:
{ "potwierdzone" :prawda, "deletedCount" :1 } Tak więc tylko jeden dokument został usunięty, mimo że trzy dokumenty spełniały kryteria.
Uruchommy find() zapytaj ponownie, aby zobaczyć, które dokumenty pozostały:
db.artists.find( { nazwa wykonawcy:{ $in:[ "Kooks", "Gang of Four", "Bastille" ] } } ) Wyniki:
{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" :"Bastille" }{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" :"Gang of Four" }db.collection.deleteMany() Metoda
db.collection.deleteMany() metoda usuwa wszystkie dokumenty, które spełniają kryteria.
Uruchommy więc db.collection.deleteMany() metoda z dokładnie takimi samymi kryteriami jak w naszym poprzednim przykładzie. Pamiętaj, pozostały dwa rekordy. Zobaczmy, czy db.collection.deleteMany() usuwa oba:
db.artists.deleteMany( { nazwa artysty:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } } ) Wiadomość wynikowa:
{ "potwierdzone" :prawda, "deletedCount" :2 } Więc pozostałe dwa rekordy zostały usunięte.
db.collection.remove() Metoda
db.collection.remove() metoda usuwa pojedynczy dokument lub wszystkie dokumenty spełniające określone kryteria.
Tutaj usuwamy wszystkie dokumenty, w których nazwa artysty to „AC/DC”.
db.artists.remove( { nazwa artysty:"AC/DC" } ) Wyniki:
WriteResult({ "nUsunięto" :1 }) W tym przypadku jest tylko jeden AC/DC :)
justOne Opcja
Możesz użyć justOne parametr ograniczający operację usuwania tylko do jednego dokumentu (tak jak przy użyciu db.collection.deleteOne() ).
Oto przykład.
Najpierw uruchommy zapytanie, które zwróci wiele dokumentów:
db.muscians.find( { urodzony:{ $lt:1950 } } ) Wyniki:
{ "_id" :2, "name" :"Ian Paice", "instrument" :"Drums", "born" :1948 }{ "_id" :3, "name" :"Roger Glover", " instrument" :"Bass", "born" :1945 }{ "_id" :5, "name" :"Don Airey", "instrument" :"Keyboards", "born" :1948 }
Teraz usuniemy jeden z tych rekordów za pomocą justOne opcja. Ponownie użyjemy dokładnie tych samych kryteriów filtrowania:
db.muscians.remove( { urodzony:{ $lt:1950 } }, { justOne:1 } ) Wiadomość wynikowa:
WriteResult({ "nUsunięto" :1 }) Teraz uruchommy to samo zapytanie, aby zobaczyć, które dokumenty pozostały:
db.muscians.find( { urodzony:{ $lt:1950 } } ) Wyniki:
{ "_id" :3, "name" :"Roger Glover", "instrument" :"Bass", "born" :1945 }{ "_id" :5, "name" :"Don Airey", " instrument" :"Klawiatura", "ur" :1948 } Usuń wszystkie dokumenty w kolekcji
Możesz usunąć wszystkie dokumenty w kolekcji, po prostu pomijając dowolne kryteria filtrowania.
Usuńmy wszystkie dokumenty w artystach kolekcja:
db.artists.remove({}) Wiadomość wynikowa:
WriteResult({ "nUsunięto" :8 }) Jeśli otrzymasz Błąd:usuń wymaga zapytania błąd, sprawdź, czy nie zapomniałeś dodać nawiasów klamrowych. Nadal musisz je uwzględnić.