Capisco che i JOIN non sono né possibili né disapprovati nei database dei documenti. Vengo da una base di dati relazionale e sto cercando di capire come gestire tali scenari.Senza JOINs, qual è il modo giusto per gestire i dati nei database di documenti?
Supponiamo di disporre di una raccolta Dipendenti in cui memorizzo tutte le informazioni relative ai dipendenti. Quello che segue è un tipico dipendente documento:
{
"id": 1234,
"firstName": "John",
"lastName": "Smith",
"gender": "Male",
"dateOfBirth": "3/21/1967",
"emailAddresses":[
{ "email": "[email protected]", "isPrimary": "true" },
{ "email": "[email protected]", "isPrimary": "false" }
]
}
Diciamo anche, ho una collezione progetti separati dove memorizzare i dati di progetto che sembra qualcosa di simile:
{
"id": 444,
"projectName": "My Construction Project",
"projectType": "Construction",
"projectTeam":[
{ "_id": 2345, "position": "Engineer" },
{ "_id": 1234, "position": "Project Manager" }
]
}
Se voglio restituire un elenco di tutti i miei progetti insieme ai team di progetto, come posso gestirmi assicurandomi di restituire tutte le informazioni pertinenti sui singoli membri del team, ovvero nomi completi, indirizzi e-mail, ecc.?
Si tratta di due query separate? Uno per i progetti e l'altro per le persone i cui ID sono presenti nella raccolta dei progetti?
In tal caso, come faccio quindi a inserire i dati relativi a persone, nomi completi, indirizzi e-mail? Faccio quindi un ciclo foreach nella mia app per aggiornare i dati?
Se mi affido alla mia applicazione per gestire l'inserimento di tutti i dati pertinenti, non si tratta di un calo di prestazioni che compenserebbe i vantaggi in termini di prestazioni dei database di documenti come MongoDB?
Grazie per il vostro aiuto.
Grazie mille a tutti! – Sam