Zoals de documenten die u citeert aangeven, kunt u $lookup . niet gebruiken op een shard-verzameling. De beste workaround is dus om de zoekopdracht zelf uit te voeren in een aparte query.
- Voer uw
aggregateuit vraag. - Trek de "localField"-waarden uit uw zoekopdrachtresultaten naar een array, mogelijk met behulp van
Array#map. - Voer een
finduit query tegen de "from"-verzameling, met behulp van een query als{foreignField: {$in: localFieldArray}} - Voeg uw resultaten samen in elke gewenste indeling.
Laat de $lookup beperking voorkomt dat u collecties shardt die dit nodig hebben voor schaalbaarheid, voert u gewoon zelf de opzoekfunctie uit.