$match (Filtrar Documentos)

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

$match (Filtrar Documentos)

$match filtra documentos com uma condição de consulta, passando apenas os documentos correspondentes para os estágios seguintes. É o equivalente de agregação do predicado de consulta de find(). Coloque $match o mais cedo possível — ele pode usar índices e reduz o número de documentos que entram nos estágios posteriores, tornando-o a regra número 1 de desempenho em agregação.

CategoriaEstágios Principais
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $match: { <consulta> } }

⚙️ Parâmetros

consultaA mesma expressão de consulta que find(), com suporte a operadores de comparação/lógicos/de elemento.

Retorno:Fluxo de documentos filtrado (para o próximo estágio)

▶ Exemplo

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

// $match: apenas pedidos com status A
db.orders.aggregate([
  { $match: { status: "A" } },
  { $group: { _id: "$cust_id", total: { $sum: "$amount" } } }
])

Saída:

// Retorna total por cliente
{ "_id": "A123", "total": 250 }
{ "_id": "B456", "total": 130 }

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQual é a diferença entre $match e find()?
AAs condições de consulta são idênticas, mas $match é usado dentro de um pipeline de agregação e passa os resultados para o próximo estágio.
Q$match pode ser colocado no meio de um pipeline?
ASim, mas você perde a otimização de índice. Regra prática: coloque-o primeiro sempre que possível.
QPor que colocar $match no início do pipeline?
AFiltrar cedo reduz o volume de dados passado aos estágios posteriores e permite que $match use um índice, o que aumenta significativamente o desempenho. Colocado depois, ele ainda funciona, mas não pode usar índices.
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%