Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
Operadores de pipeline de agregación

$allElementsTrue (operador de expresión)

$allElementsTrue

Evalúa un arreglo como un conjunto y devuelve true si ningún elemento del arreglo es false. En caso contrario, devuelve false. Un arreglo vacío devuelve true.

$allElementsTrue tiene la siguiente sintaxis:

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

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

Ejemplo
Resultado

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

true

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

true

{ $allElementsTrue: [ [ ] ] }

true

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

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 $allElementsTrue para determinar si el arreglo responses sólo contiene valores que se evalúan como true:

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

$addToSet

En esta página