sql >> Database >  >> NoSQL >> MongoDB

MongoDB Update Deep Array

Helaas is het op dit moment alleen mogelijk om een ​​enkele "$" positional per update te gebruiken. Dit beperkt de update tot een enkele embedded array, vergelijkbaar met het voorbeeld in de documentatie:http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator(Uit uw bericht lijkt het alsof u al heb dit gevonden, maar ik heb de link toegevoegd ten behoeve van andere gebruikers die dit bericht lezen.)

Om de update uit te voeren, moet u de positie van twee van de volgende drie weten:De positie van de band in de "bands"-array, de positie van het album in de albums-array of de positie van de track in de array "tracks".

Er is een functieverzoek voor deze functionaliteit en het is gepland voor versie 2.3.0 (hoewel dit kan worden gewijzigd).
https://jira.mongodb.org/browse/SERVER-831 "Positional Operator Matching Geneste arrays"

Voorlopig moet u de positie van de subdocumenten in twee van de drie arrays kennen:

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!"}})

of

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 cluster reshard [ERR] Aanroepen van MIGRATE:ERR Syntaxisfout

  2. Hoe Redis-sleutels in serie met Java te repareren

  3. MongoDB:is het veilig om de ID van het document in het openbaar te gebruiken?

  4. Hoe kan ik zien waar mongoDB gegevens opslaat? (het staat niet in de standaard /data/db!)