MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB usará fragmentação com o operador de agregação $lookup


Como os documentos citados indicam, você não pode usar $lookup em uma coleção fragmentada. Portanto, a solução de prática recomendada é realizar a pesquisa você mesmo em uma consulta separada.
  1. Faça sua aggregate consulta.
  2. Puxe os valores "localField" dos resultados da sua consulta para uma matriz, possivelmente usando Array#map .
  3. Executar uma find consulta na coleção "from", usando uma consulta como {foreignField: {$in: localFieldArray}}
  4. Mescle seus resultados em qualquer formato que você precisar.

Não deixe o $lookup Se essa limitação impedir você de fragmentar coleções que exigem escalabilidade, basta executar a função de pesquisa por conta própria.