sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB para usar Sharding con el operador de agregación $lookup

Como indican los documentos que cita, no puede usar $lookup en una colección fragmentada. Por lo tanto, la solución alternativa recomendada es realizar la búsqueda usted mismo en una consulta separada.

  1. Realice su aggregate consulta.
  2. Extraiga los valores de "localField" de los resultados de su consulta en una matriz, posiblemente usando Array#map .
  3. Realizar una find consulta contra la colección "from", usando una consulta como {foreignField: {$in: localFieldArray}}
  4. Combine sus resultados en cualquier formato que necesite.

No dejes que $lookup limitación le impide fragmentar las colecciones que lo requieren para la escalabilidad, simplemente realice la función de búsqueda usted mismo.