$lookup (Junção de Coleções)

Última atualização: 2026-10-09

$lookup (Junção de Coleções)

$lookup realiza uma junção externa à esquerda entre a coleção atual e outra coleção, anexando documentos correspondentes como um array a cada resultado. Equivalente ao LEFT JOIN do SQL, ele permite que pipelines combinem dados entre coleções sem várias consultas. Note que ele suporta apenas correspondências por igualdade — sem junções por intervalo ou condicionais.

CategoriaEstágios Principais
Versão do MongoDB3.2+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $lookup: { from: <coleção>, localField: <campo-local>, foreignField: <campo-estrangeiro>, as: <array-de-saída> } }

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $lookup: junta pedidos com clientes
db.orders.aggregate([
  { $lookup: {
      from: "customers",
      localField: "cust_id",
      foreignField: "_id",
      as: "customer"
  } }
])

Saída:

{ "_id": 1, "cust_id": "A123", "customer": [{ "_id": "A123", "name": "Alice" }] }

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

Q$lookup pode substituir JOINs no nível do banco de dados?
AEle alcança resultados semelhantes, mas $lookup mescla dados em tempo de consulta: correspondências por igualdade e comparações simples dentro do pipeline podem usar índices, porém sua otimização de junção é menos abrangente que a de bancos SQL, então avalie o desempenho em conjuntos de dados muito grandes.
QComo posso otimizar o desempenho de $lookup?
ACrie um índice no campo de chave estrangeira da coleção unida. Também prefira $match cedo no pipeline para reduzir a coleção principal antes da junção.
Q$lookup suporta junções por várias chaves?
ASim. Desde o 3.6, a forma de pipeline de $lookup com $expr permite junções por vários campos e subconsultas além da igualdade simples em uma chave.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%