Comme l'indiquent les documents que vous citez, vous ne pouvez pas utiliser $lookup
sur une collection fragmentée. La meilleure solution consiste donc à effectuer vous-même la recherche dans une requête distincte.
- Effectuez votre
aggregate
requête. - Tirez les valeurs "localField" des résultats de votre requête dans un tableau, éventuellement en utilisant
Array#map
. - Effectuer une
find
requête sur la collection "from", en utilisant une requête telle que{foreignField: {$in: localFieldArray}}
- Fusionnez vos résultats dans le format dont vous avez besoin.
Ne laissez pas le $lookup
limitation vous empêche de partitionner les collections qui en ont besoin pour l'évolutivité, effectuez simplement la fonction de recherche vous-même.