Introdução do Capítulo

Neste capítulo, vamos introduzir os operadores de correspondência de campo de array nos documentos JSON do MongoDB.

Operadores de Consulta de Array Suportados pelo MongoDB

Operador Descrição
$all Corresponde ao valor inteiro do array na condição da consulta
$elemMatch Para campos de array, se qualquer valor corresponder a todas as condições definidas por $elemMatch, a condição é atendida
$size Corresponde ao tamanho do array

$all

{ tags: { $all: [ "ssl" , "security" ] } }

Equivalente a

{ $and: [ { tags: "ssl" }, { tags: "security" } ] }

O campo tags é um valor de array e o array tags contém simultaneamente os valores ssl e security.

$elemMatch

Dados de Teste

Os dados da coleção scores são os seguintes:

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }

Exemplo:

db.scores.find(
   { results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)

Dados Retornados:

{ "_id" : 1, "results" : [ 82, 85, 88 ] }

Explicação:

  • Se qualquer valor no array results for maior ou igual a 80 e menor que 85, o documento será correspondido com sucesso.

$size

Corresponde ao tamanho do array

db.collection.find( { field: { $size: 2 } } );

Explicação:

  • O campo field é um valor de array e, se o tamanho do array for igual a 2, o documento será correspondido com sucesso.