Както показват документите, които цитирате, не можете да използвате $lookup на разчленена колекция. Така че най-добрата практика е да извършите търсенето сами в отделна заявка.
- Извършете своя
aggregateзапитване. - Изтеглете стойностите на „localField“ от резултатите от вашата заявка в масив, евентуално като използвате
Array#map. - Извършете
findзаявка срещу колекцията "от", използвайки заявка като{foreignField: {$in: localFieldArray}} - Обединете резултатите си във формат, от който се нуждаете.
Не позволявайте на $lookup ограничението ви спира да разделяте колекции, които го изискват за мащабируемост, просто изпълнете сами функцията за търсене.