> For the complete documentation index, see [llms.txt](https://avbravo-2.gitbook.io/jmoordb/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://avbravo-2.gitbook.io/jmoordb/capitulo-7-aggregation/capitulo-6-aggregation/ejemplo-lookup.md).

# Ejemplo $lookup

## $lookup

```java
{
   $lookup:
     {
       from: <collection to join>,
       let: { <var_1>: <expression>, …, <var_n>: <expression> },
       pipeline: [ <pipeline to execute on the collection to join> ],
       as: <output array field>
     }
}
```

**Funciona con un innerjoin uniendo colecciones dentro de la misma base de datos**

Referencia

<https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/index.html>

![](https://1490144122-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lc1Wg6bBVlJX-GjApa1%2F-Lc1WhtDA-TTmZ6My9OJ%2F-Lc1Wv-0qkUUDNc4gPG2%2Farb.png?generation=1554820610263283\&alt=media)

**Queremos mostrar los modelos en cada articulo**

Unimos las dos coleecciones en base al atributo idmodelo, si se observa se crea un nuevo atributo ***modelo\_docs**.que contiene el documento del modelo correspondiente.*

|                                                                                                                                                                                                      |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| db.articulo.aggregate(\[    {      $lookup:        {          from: "modelo",          localField: "modelo.idmodelo",          foreignField: "idmodelo",          as: "modelo\_docs"        }   } ]) |

salida

![](https://1490144122-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lc1Wg6bBVlJX-GjApa1%2F-Lc1WhtDA-TTmZ6My9OJ%2F-Lc1Wv-29H8zDhOVU7su%2Farticulso.png?generation=1554820608869786\&alt=media)
