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.
- Esegui il tuo
aggregateinterrogazione. - Trascina i valori "localField" dai risultati della tua query in un array, possibilmente utilizzando
Array#map. - Esegui un
findeseguire una query sulla raccolta "from", utilizzando una query come{foreignField: {$in: localFieldArray}} - 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.