Introducción del capítulo

En este capítulo, presentaremos los operadores de coincidencia de campos de arreglo en los documentos JSON de MongoDB.

Operadores de consulta de arreglos compatibles con MongoDB

Operador Descripción
$all Coincide con el valor completo del arreglo en la condición de consulta
$elemMatch Para campos de arreglo, si algún valor coincide con todas las condiciones establecidas por $elemMatch, se cumple la condición
$size Coincide con el tamaño del arreglo

$all

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

Equivalent to

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

El campo tags es un valor de arreglo, y el arreglo tags contiene simultáneamente los valores ssl y security.

$elemMatch

Datos de prueba

Los datos de la colección scores son los siguientes:

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

Ejemplo:

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

Datos devueltos:

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

Explicación:

  • Si algún valor en el arreglo results es mayor o igual a 80 y menor que 85, el documento coincide exitosamente.

$size

Coincide con el tamaño del arreglo

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

Explicación:

  • El campo field es un valor de arreglo, si el tamaño del arreglo es igual a 2, el documento coincide exitosamente.