que - MongoDB usará Sharding con el operador de agregación de $ lookup
mongodb español (1)
Como lo indican los documentos que cita, no puede usar $lookup en una colección fragmentada. Por lo tanto, la mejor práctica alternativa es realizar la búsqueda usted mismo en una consulta separada.
- Realice su consulta
aggregate. - Extraiga los valores "localField" de los resultados de su consulta en una matriz, posiblemente utilizando
Array#map. - Realice una consulta de búsqueda en la colección "from", utilizando una consulta como
{foreignField: {$in: localFieldArray}} - Combina tus resultados en el formato que necesites.
No permita que la limitación de $lookup detenga de las colecciones de fragmentos que lo requieren para la escalabilidad, solo realice la función de búsqueda usted mismo.
$lookup es nueva en MongoDB 3.2. Realiza una unión externa izquierda a una colección no compartida en la misma base de datos para filtrar los documentos de la colección "unida" para su procesamiento.
Para usar $lookup , la colección from no se puede fragmentar.
Por otro lado, la fragmentación es un enfoque de escala horizontal útil.
¿Cuál es la mejor práctica para usarlos juntos?