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

Głęboka tablica aktualizacji MongoDB

Niestety, obecnie możliwe jest użycie tylko jednego pozycyjnego "$" na aktualizację. Ogranicza to aktualizację do pojedynczej wbudowanej tablicy, podobnie jak w przykładzie w dokumentacji:http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator(Z twojego postu wygląda na to, że już znalazłem to, ale zamieściłem link z korzyścią dla innych użytkowników czytających ten post.)

Aby dokonać aktualizacji, będziesz musiał znać pozycję dwóch z trzech następujących:pozycja zespołu w tablicy „bands”, pozycja albumu w tablicy albumów lub pozycja utworu w tablicy „tracks”.

Istnieje prośba o dodanie funkcji dla tej funkcji, która jest przeznaczona dla wersji 2.3.0 (chociaż może to ulec zmianie).
https://jira.mongodb.org/browse/SERVER-831 "Dopasowanie operatorów pozycyjnych Tablice zagnieżdżone"

Na razie będziesz musiał znać pozycję dokumentów podrzędnych w dwóch z trzech tablic:

db.music.update({genre : "Grunge", "bands.name" : "Nirvana"}, {$set:{"bands.$.albums.0.tracks.0.name":"Smells Like Teen Spirit!"}})

db.music.update({genre : "Grunge", "bands.0.albums.name" : "Nevermind"}, {$set:{"bands.0.albums.$.tracks.0.name":"Smells Like Teen Spirit!"}})

lub

db.music.update({genre : "Grunge", "bands.0.albums.0.tracks.order" : 1}, {$set:{"bands.0.albums.0.tracks.$.name":"Smells Like Teen Spirit!"}})



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Utwórz kolekcję w MongoDB

  2. Jak wykonać surowe operacje mongodb w manguście?

  3. MongoDB insertOne()

  4. Wbudowana MongoDB podczas uruchamiania testów integracyjnych

  5. Uzyskanie najwyższej wartości kolumny w MongoDB