MongoDB meerdere resultaten teruggeven uit array

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Ask!
  • Registratie: Februari 2015
  • Laatst online: 26-08 11:07
Stel een veld heeft deze structuur in MongoDB.

code:
1
2
3
4
5
6
7
8
9
{
    name: "Piet",
    leeftijd: 13,
    hobbies: [
        "Zwemmen",
        "Achteruit inparkeren",
        "Blauwe verf mengen met witte verf"
    ]
}


Wat ik graag zou willen, is dat ik met een query op de database de volgende resultaten terugkrijg:

code:
1
2
3
{ name: "Piet", leeftijd: 13, hobbies: "Zwemmen"},
{ name: "Piet", leeftijd: 13, hobbies: "Achteruit inparkeren"},
{ name: "Piet", leeftijd: 13, hobbies: "Blauwe verf mengen met witte verf"}


Door voor elke element in een array in een bepaald veld, geef alle overige velden + dat veld in de array terug.
Ik probeer dit met een forEach functie, maar hier kwamen erg rare resultaten uit.
Kan iemand mij hiermee helpen?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Waarom doe je dat niet gewoon in je code? Ik zie in de Mongo docs niks over een flatmap functie dus dat gaat vermoedelijk niet werken.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • chime
  • Registratie: Januari 2005
  • Laatst online: 09-09 12:46
Het idee van MongoDB is dat je je data gaat vormgeven zoals je het wenst te gebruiken.

Kan je je data niet anders vormgeven dan zijn er 2 opties:
Ofwel handel je het af via de client => mapping naar Data Transfer Objects
Ofwel kijk je naar mongodb's aggregate queries - daar kan je meer doen rond data manipulatie.

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Hydra schreef op woensdag 19 oktober 2016 @ 19:12:
Waarom doe je dat niet gewoon in je code? Ik zie in de Mongo docs niks over een flatmap functie dus dat gaat vermoedelijk niet werken.
https://docs.mongodb.com/...rator/aggregation/unwind/

Maar dit verhaal doet meer denken dat TS niet snapt hoe om te gaan met de data, dan dat deze operator een oplossing is voor het echte probleem. Zou zomaar verwachten dat een extra for-loopje handiger over hobbies in de code is.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten