Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Operadores de pipeline de agregación

$anyElementTrue (operador de expresión)

$anyElementTrue

Evalúa una matriz como un conjunto y devuelve true si alguno de sus elementos es true y false en caso contrario. Una matriz vacía devuelve false.

$anyElementTrue tiene la siguiente sintaxis:

{ $anyElementTrue: [ <expression> ] }

<expression> misma debe resolverse en un arreglo, haciendo que sea distinto del arreglo exterior que supone la lista de argumentos. Para obtener más información sobre las expresiones, consultar expresión.

Si un conjunto contiene un elemento de arreglo anidado, $anyElementTrue no desciende al arreglo anidado, sino que evalúa el arreglo en el nivel superior.

Además del valor booleano false, $anyElementTrue se evalúa como false lo siguiente: null, 0 y valores undefined. La $anyElementTrue evalúa todos los demás valores como true, incluyendo valores numéricos distintos de cero y arreglos.

Ejemplo
Resultado

{ $anyElementTrue: [ [ true, false ] ] }

true

{ $anyElementTrue: [ [ [ false ] ] ] }

true

{ $anyElementTrue: [ [ null, false, 0 ] ] }

false

{ $anyElementTrue: [ [ ] ] }

false

Crea una colección de ejemplo llamada survey con los siguientes documentos:

db.survey.insertMany( [
{ _id: 1, responses: [ true ] },
{ _id: 2, responses: [ true, false ] },
{ _id: 3, responses: [ ] },
{ _id: 4, responses: [ 1, true, "seven" ] },
{ _id: 5, responses: [ 0 ] },
{ _id: 6, responses: [ [ ] ] },
{ _id: 7, responses: [ [ 0 ] ] },
{ _id: 8, responses: [ [ false ] ] },
{ _id: 9, responses: [ null ] },
{ _id: 10, responses: [ undefined ] }
] )

La siguiente operación utiliza el operador para determinar si $anyElementTrue la responses matriz contiene algún valor que evalúe true como:

db.survey.aggregate(
[
{ $project: { responses: 1, isAnyTrue: { $anyElementTrue: [ "$responses" ] }, _id: 0 } }
]
)

La operación devuelve los siguientes resultados:

{ "responses" : [ true ], "isAnyTrue" : true }
{ "responses" : [ true, false ], "isAnyTrue" : true }
{ "responses" : [ ], "isAnyTrue" : false }
{ "responses" : [ 1, true, "seven" ], "isAnyTrue" : true }
{ "responses" : [ 0 ], "isAnyTrue" : false }
{ "responses" : [ [ ] ], "isAnyTrue" : true }
{ "responses" : [ [ 0 ] ], "isAnyTrue" : true }
{ "responses" : [ [ false ] ], "isAnyTrue" : true }
{ "responses" : [ null ], "isAnyTrue" : false }
{ "responses" : [ undefined ], "isAnyTrue" : false }

Volver

$and

En esta página