O Aggregation Framework é uma poderosa ferramenta no MongoDB que permite realizar operações de agregação de dados de forma eficiente e flexível. Uma das etapas fundamentais na criação de uma pipeline de agregação é a filtragem dos dados, e para isso utilizamos o operador $match.
O $match é responsável por filtrar os documentos de uma coleção com base em determinados critérios. Ele funciona de forma semelhante ao operador $find, porém, ao contrário deste, o $match não retorna os documentos filtrados, mas sim os passa para a próxima etapa da pipeline.
Para utilizar o $match, basta passar um objeto como argumento contendo os critérios de filtragem desejados. Por exemplo, se quisermos filtrar todos os documentos de uma coleção onde o campo ‘idade’ seja maior que 30, podemos utilizar a seguinte sintaxe:
{$match: { idade: { $gt: 30 } }}
O operador $gt é utilizado para verificar se o valor de um campo é maior que um determinado valor. Além do $gt, existem outros operadores de comparação disponíveis, como $lt (menor que), $gte (maior ou igual a) e $lte (menor ou igual a).
Além disso, é possível utilizar o $match em conjunto com outros operadores e expressões para realizar filtragens mais complexas. Por exemplo, podemos utilizar o operador $and para combinar múltiplos critérios de filtragem:
{$match: { $and: [ { idade: { $gt: 30 } }, { cidade: 'São Paulo' } ] }}
Neste caso, estamos filtrando os documentos onde a idade seja maior que 30 e a cidade seja igual a ‘São Paulo’.
O $match também pode ser utilizado para filtrar documentos com base em campos que são arrays. Por exemplo, se quisermos filtrar todos os documentos onde o campo ‘interesses’ contenha a palavra ‘esportes’, podemos utilizar a seguinte sintaxe:
{$match: { interesses: 'esportes' }}
Além disso, o $match também suporta o uso de expressões regulares para realizar filtragens ainda mais precisas. Por exemplo, se quisermos filtrar todos os documentos onde o campo ‘nome’ comece com a letra ‘A’, podemos utilizar a seguinte sintaxe:
{$match: { nome: /^A/ }}
Em resumo, o operador $match é uma ferramenta essencial no Aggregation Framework do MongoDB para realizar a filtragem de dados de forma eficiente e flexível. Com ele, é possível realizar filtragens simples ou complexas, combinando múltiplos critérios e utilizando operadores de comparação e expressões regulares.