Docs Menu
Docs Home
/ /

$allElementsTrue (operador de expresión)

$allElementsTrue

Evalúa una matriz como un conjunto y devuelve true si ningún elemento de la matriz false es. De lo contrario,false devuelve. Una matriz vacía true devuelve.

$allElementsTrue tiene la siguiente sintaxis:

{ $allElementsTrue: [ <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, $allElementsTrue no desciende al arreglo anidado, sino que evalúa el arreglo en el nivel superior.

Además del false valor booleano, evalúa$allElementsTrue como false los siguientes valores:, null 0 undefined y. evalúa como todos los demás $allElementsTrue valores,true incluidos los valores numéricos y las matrices distintos de cero.

Ejemplo
Resultado

{ $allElementsTrue: [ [ true, 1, "someString" ] ] }

true

{ $allElementsTrue: [ [ [ false ] ] ] }

true

{ $allElementsTrue: [ [ ] ] }

true

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

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 $allElementsTrue la responses matriz solo contiene valores que evalúan true como:

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

La operación devuelve los siguientes resultados:

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

Volver

$add

En esta página