sql >> Database >  >> NoSQL >> MongoDB

MongoDB gaat Sharding gebruiken met $lookup Aggregation Operator

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.

  1. Voer uw aggregate uit vraag.
  2. Trek de "localField"-waarden uit uw zoekopdrachtresultaten naar een array, mogelijk met behulp van Array#map .
  3. Voer een find uit query tegen de "from"-verzameling, met behulp van een query als {foreignField: {$in: localFieldArray}}
  4. 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.



  1. Hoe kan ik het formaat van een mongodb-capped collectie wijzigen zonder gegevens te verliezen?

  2. Java, MongoDB:hoe werk je elk object bij terwijl je een enorme verzameling itereert?

  3. Enorme vertraging bij gebruik van Celery + Redis

  4. Mongodb:Query een json-object genest in een array