MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

4 sposoby na usunięcie dokumentu w MongoDB

W MongoDB, jeśli chcesz usunąć dokument w powłoce mongo, możesz użyć:

  • db.collection.remove() metoda
  • delete polecenie
  • db.collection.deleteOne() metoda
  • db.collection.deleteMany() metoda

Ten artykuł zawiera przykłady każdego z nich.

db.collection.remove() Metoda

db.collection.remove() metoda usuwa (tj. usuwa) dokumenty z kolekcji. W razie potrzeby możesz usunąć wszystkie dokumenty, niektóre dokumenty lub pojedynczy dokument.

Oto przykład usuwania konkretnego dokumentu.

db.employees.remove({ "_id": 3 })

Wynik:

WriteResult({ "nRemoved" : 1 })

To usuwa dokument z _id wartość 3 od employees kolekcja.

Nie musi jednak pasować do jednego dokumentu. Kryteria filtrowania mogą pasować do wielu dokumentów, a nawet możesz pozostawić puste kryteria filtrowania, aby pasowały do ​​wszystkich dokumentów (tj. Usuń wszystkie dokumenty).

Oto przykład usuwania wszystkich dokumentów:

db.employees.remove({})

Wynik:

WriteResult({ "nRemoved" : 5 })

Wynik pokazuje nam, że pięć dokumentów zostało usuniętych (więc kolekcja oczywiście zawierała pięć dokumentów, zanim usunęliśmy je wszystkie).

remove() metoda akceptuje również justOne parametr, aby ograniczyć usuwanie tylko do jednego dokumentu. Spowoduje to usunięcie pierwszego dokumentu, który spełnia kryteria usuwania.

Przykład:

db.employees.remove({}, "justOne: true")

Wynik:

WriteResult({ "nRemoved" : 1 })

W tym przypadku naszym kryterium filtrowania jest pusty dokument, a więc pasuje do wszystkich dokumentów w kolekcji. Jednak tylko jeden dokument jest usuwany, ponieważ używamy justOne: true .

delete Polecenie

delete polecenie robi dokładnie to samo, co remove() metoda. W rzeczywistości remove() metoda używa polecenia usuwania.

Oto przykład usuwania określonego dokumentu za pomocą delete polecenie.

db.runCommand(
   {
      delete: "employees",
      deletes: [ { q: { _id: 4 }, limit: 1 } ]
   }
)

Wynik:

{ "n" : 1, "ok" : 1 }

db.collection.deleteOne() Metoda

db.collection.deleteOne() metoda jest podobna do metody db.collection.remove() z tą różnicą, że usuwa tylko jeden dokument z określonej kolekcji.

Akceptuje warunek filtra, podobnie jak db.collection.remove() .

Przykład:

db.employees.deleteOne({ "_id": 4 })

Wynik:

{ "acknowledged" : true, "deletedCount" : 1 }

Ten usunięty pracownik numer 4.

Jeśli podasz szerszy filtr, który zwróci wiele dokumentów, usunie tylko pierwszy.

Na przykład poniższe polecenie usuwa pierwszy dokument w kolekcji, niezależnie od tego, ile dokumentów znajduje się w kolekcji:

db.employees.deleteOne({})

db.collection.deleteOne() Metoda może być przydatną metodą, jeśli obawiasz się przypadkowego usunięcia wielu dokumentów. Większość dokumentów, które usunie, to jeden, więc jeśli popełnisz błąd „gruby palec”, nie usuniesz przypadkowo wszystkich dokumentów z kolekcji (chyba że w kolekcji jest tylko jeden dokument).

db.collection.deleteMany() Metoda

db.collection.deleteMany() metoda jest podobna do db.collection.deleteOne() poza tym, że może usunąć wiele dokumentów.

Właściwie to prawdopodobnie bardziej przypomina remove() , ponieważ może usunąć wiele dokumentów i jeden dokument (chociaż nie ma justOne parametr taki jak remove() tak).

Ta metoda może być przydatna, jeśli chcesz usunąć wszystkie dokumenty spełniające określone kryteria.

Przykład:

db.employees.deleteMany({ "salary": { $gt: 80000 } })

Wynik:

{ "acknowledged" : true, "deletedCount" : 2 }

Spowodowało to usunięcie wszystkich dokumentów, które mają salary pole powyżej 80000. W tym przypadku pasowały tylko dwa dokumenty, ale mogła to być dowolna liczba.

Możesz także użyć db.collection.deleteMany() aby usunąć wszystkie dokumenty z kolekcji.

Przykład:

db.employees.deleteMany({})

Wynik:

{ "acknowledged" : true, "deletedCount" : 5 }

W tym przypadku w kolekcji znajdowało się pięć dokumentów i wszystkie pięć zostały usunięte.

Więcej informacji

Powyższe metody akceptują również szereg opcjonalnych argumentów, takich jak writeConcern i collation .

deleteOne() i deleteMany() zaakceptuj także hint argument.

Poniżej znajdują się łącza do dokumentacji MongoDB dla każdej metody/polecenia:

  • db.collection.remove()
  • delete
  • db.collection.deleteOne()
  • db.collection.deleteMany()

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. związek wiele do wielu z nosql (mongodb i mangusta)

  2. Wyszukiwanie zagnieżdżone MongoDB z 3 poziomami

  3. Aktualizuj zagnieżdżone obiekty tablicowe na podstawie właściwości w MongoDB

  4. Podziel ciąg na tablicę podciągów lub znaków w MongoDB

  5. 7 sposobów liczenia dokumentów w MongoDB