Docs Menu
Docs Home
/ /

$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> ] }

El <expression> debe resolverse en una matriz, independiente de la matriz externa que representa la lista de argumentos. Para más información sobre expresiones, consulte Expresiones.

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 false valor booleano, evalúa$anyElementTrue como false los siguientes valores:, null 0 undefined y. evalúa como todos los demás $anyElementTrue valores,true incluidos los valores numéricos y las matrices distintos de cero.

Ejemplo
Resultado

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

true

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

true

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

false

{ $anyElementTrue: [ [ ] ] }

false

Cree una colección de ejemplo denominada 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