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?