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

Cerca su più raccolte in MongoDB

Questa risposta è obsoleta. Dalla versione 3.2, MongoDB ha un supporto limitato per i join esterni sinistro con l'operatore di aggregazione $lookup

MongoDB non esegue query che si estendono su più raccolte - punto. Quando devi unire dati da più raccolte, devi farlo a livello di applicazione eseguendo più query.

  1. Raccolta di query A
  2. Ottieni le chiavi secondarie dal risultato e inseriscile in un array
  3. Raccolta di query B passando quell'array come valore di $in-operator
  4. Unisci i risultati di entrambe le query in modo programmatico sul livello dell'applicazione

Dover fare questo dovrebbe essere piuttosto l'eccezione che la norma. Quando hai spesso bisogno di emulare JOIN del genere, significa che stai ancora pensando troppo relazionale quando progetti lo schema del tuo database o che i tuoi dati semplicemente non sono adatti per il concetto di archiviazione basato su documenti di MongoDB.