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

MongoDB $pop

W MongoDB możesz użyć $pop operator do usunięcia pierwszego lub ostatniego elementu z tablicy.

Użyj $pop w połączeniu z metodą taką jak update() aby zaktualizować określony dokument ze zmianą.

Użyj -1 aby usunąć pierwszy element i 1 aby usunąć ostatnie.

Przykład

Załóżmy, że mamy kolekcję o nazwie products z następującymi dokumentami:

{ "_id" : 1, "prod" : "Bat", "sizes" : [ "S", "M", "L", "XL" ] }
{ "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] }
{ "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }

Usuń pierwszy element

Możemy usunąć pierwszy element tablicy w dokumencie 1 w ten sposób:

db.products.update( 
  { _id: 1 }, 
  { $pop: { sizes: -1 } } 
)

Wyjście:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Ta wiadomość mówi nam, że jeden dokument pasował, a jeden (tj. ten sam dokument) został zmodyfikowany.

Przyjrzyjmy się teraz kolekcji:

db.products.find()

Wynik:

{ "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] }
{ "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] }
{ "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }

Widzimy, że pierwszy element tablicy w dokumencie 1 został usunięty.

Usuń ostatni element

Teraz usuńmy ostatni element z tablicy w dokumencie 2:

db.products.update( 
  { _id: 2 }, 
  { $pop: { sizes: 1 } } 
)

Wyjście:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Teraz ponownie sprawdźmy kolekcję:

db.products.find()

Wynik:

{ "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] }
{ "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L" ] }
{ "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }

Widzimy, że ostatni element został usunięty z tablicy w dokumencie 2.

Aktualizuj wszystkie dokumenty

Oto przykład, który używa updateMany() metoda aktualizacji wszystkich dokumentów:

db.products.updateMany( 
  { }, 
  { $pop: { sizes: 1 } } 
)

Wyjście:

{ "acknowledged" : true, "matchedCount" : 3, "modifiedCount" : 3 }

I ponownie sprawdź kolekcję:

db.products.find()

Wynik:

{ "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L" ] }
{ "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M" ] }
{ "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M" ] }

Alternatywnie możesz użyć update() metoda aktualizacji wielu dokumentów przez określenie multi: true .


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nie można użyć polecenia mongo, pokazuje polecenie nie znalezione na komputerze Mac

  2. Jak zezwolić na dowolne dane JSON w dokumentach Mongoose?

  3. Samouczek MongoDB dla początkujących (kompletny przewodnik) – Naucz się MongoDB w 15 minut

  4. Jak wyeksportować kolekcję do CSV w MongoDB?

  5. mongo.so:> niezdefiniowany symbol:php_json_encode w Unknown w linii 0. Po instalacji sterownika mongo dla php