Definición
$allElementsTrueEvalúa una matriz como un conjunto y devuelve
truesi ningún elemento de la matrizfalsees. De lo contrario,falsedevuelve. Una matriz vacíatruedevuelve.$allElementsTruetiene 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.
Comportamiento
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 |
|---|---|
|
|
|
|
|
|
|
|
Ejemplo
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 }