MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Il modo migliore per memorizzare/ottenere valori referenziati da un elenco in Mongo/RectiveMongo?

Ho affrontato questo problema esatto qualche tempo fa.

Non ci sono join in mongo. Devi occuparti manualmente del join.

Le tue opzioni sono:

  1. Esplora ogni voce di commento e interroga mongo per l'utente. questo è quello che stai facendo.
  2. Ottieni tutti gli ID utente dai commenti, interroga mongo per gli utenti che corrispondono a questi ID, quindi fai attenzione a far corrispondere utente a commento. Questo è proprio quello che hai fatto, ma un po' più ottimizzato.
  3. Incorpora l'utente nei commenti o nei commenti negli utenti. Non lo consiglierei, probabilmente non è il posto giusto per commenti/utenti.
  4. Pensa a quale insieme di dati hai bisogno dall'utente quando visualizzi un commento e incorpora solo queste informazioni nel commento

Alla fine ho optato per l'ultima opzione.
Abbiamo incorporato l'ID utente, il nome e il cognome in ogni commento. È improbabile che queste informazioni cambino (forse non è nemmeno consentito modificarle dopo la creazione?).
Se può cambiare, quindi non è troppo difficile adattare il metodo update-user per aggiornare i commenti correlati con le nuove informazioni (abbiamo fatto anche quello).
Quindi ora non è necessario alcun join.