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
aggregate
uit vraag. - Trek de "localField"-waarden uit uw zoekopdrachtresultaten naar een array, mogelijk met behulp van
Array#map
. - Voer een
find
uit 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.