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

Relazioni incorporate o referenziate

Nel tuo caso consiglierei di utilizzare dati referenziati. Perché suppongo che tu debba manipolare ciascuna di quelle raccolte da sola (devi essere in grado di modificare/eliminare/aggiornare i "prodotti" di _id e fare alcune altre query complicate, il che è molto più semplice ed efficace quando hai separato collezione).

Allo stesso tempo memorizzerei alcuni dati completamente incorporati nella raccolta Utenti, solo per velocizzare la visualizzazione sul browser del visitatore. Supponiamo che tu abbia la pagina di un utente in cui desideri mostrare il profilo dell'utente, i primi 5 mercati e i primi 20 prodotti. Puoi incorporare i primi 5 e i primi 20 più recenti nel documento dell'utente e aggiornare quegli oggetti incorporati quando ci sono nuovi mercati/prodotti. In questo caso, quando mostri la pagina dell'utente devi eseguire solo 1 query su MongoDB. Quindi funziona come cache. Se il visitatore ha bisogno di visualizzare più prodotti, va alla pagina successiva "Prodotti" e interroga la raccolta "Prodotti" separata in MongoDB.