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

MongoDB per utilizzare lo sharding con $lookup Aggregation Operator

Come indicano i documenti che citi, non puoi utilizzare $lookup su una raccolta frammentata. Pertanto, la soluzione migliore per la pratica consiste nell'eseguire la ricerca da soli in una query separata.

  1. Esegui il tuo aggregate interrogazione.
  2. Trascina i valori "localField" dai risultati della tua query in un array, possibilmente utilizzando Array#map .
  3. Esegui un find eseguire una query sulla raccolta "from", utilizzando una query come {foreignField: {$in: localFieldArray}}
  4. Unisci i tuoi risultati nel formato di cui hai bisogno.

Non lasciare che la $lookup limitazione ti impedisce di partizionare le raccolte che lo richiedono per la scalabilità, esegui tu stesso la funzione di ricerca.