En MongoDB 3.2 se ha introducido el operador look lookup en el marco de agregación que se puede utilizar para realizar una UNIÓN IZQUIERDA.
Tenga en cuenta que la operación de datos de MongoDB no es como
los datos de operación en la base de datos relacional, por lo que siempre es aconsejable tener datos relevantes dentro del mismo documento
que a menudo se usan juntos. Pero en un caso determinado, se requiere poner en dos colecciones diferentes debido a varios similares a
, para evitar la duplicación de datos para los que tenemos operaciones de actualización pesadas, uso en múltiples colecciones, etc.
UNIRSE es una de las diferencias clave entre la base de datos SQL y NoSQL, donde como operador MongoDB Aggregation look lookup
es útil y potente para obtener UNIRSE para dos colecciones, como hacerlo en RDBMS.
Veamos más adelante:
Sintaxis:
Obtenga más información sobre MEAN Stack
Desarrollo
Si viene de RDBMS world, puede estar esperando esto como documento separado enlace a todos los campos de la colección local
y extranjera, pero NO, todos los documentos extranjeros se agregarán como una matriz de documentos de colección local. Dado que todos los documentos extranjeros
agregados dentro del documento, es posible que desee usar solo si un número de documentos relativos extranjeros están
limitados y no hace que el tamaño del documento de resultado supere el límite de tamaño del documento.
Ex:
Digamos que tenemos dos colecciones ‘pedidos’ y ‘producto’ con los siguientes datos.Pedidos
:
Productos:
Ahora para recuperar el pedido con los detalles del producto, podemos usar a continuación
Documentos de resultados:
Normalmente, order puede contener varios elementos, veamos cómo puede realizar $lookup dentro del elemento array.
Cambiemos las colecciones de pedidos para que se vean como a continuación
En este caso, los elementos de pedido están en una matriz que
requiere para desenrollarse utilizando el operador unwind unwind, que creará un documento
separado por elemento y luego puede realizar una búsqueda. El script puede verse como el de abajo.
Resultado:
Es posible que no desee usar operator lookup operator para obtener todos los pedidos de un producto en particular en otros pedidos de word join en
producto. En el caso del producto más vendido, es posible que tengamos miles de pedidos y todos los agregados dentro de una sola matriz pueden causar una matriz de límite de tamaño de documento
.