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.