Definición
$powEleva un número al exponente especificado y devuelve el resultado.
$powtiene la siguiente sintaxis:{ $pow: [ <number>, <exponent> ] } La expresión
<number>puede ser cualquier valor válido. expresión siempre que se resuelva en un número.La
<exponent>expresión puede ser cualquier expresión válida siempre que se resuelva en un número.No puedes elevar
0a un exponente negativo.
Comportamiento
El resultado tendrá el mismo tipo que la entrada excepto cuando no pueda representarse con precisión en ese tipo. En estos casos:
Un entero de 32bits se convertirá en un entero de 64bits si el resultado se puede representar como un entero de 64bits.
Un entero de 32bits se convertirá en un doble si el resultado no se puede representar como un entero de 64bits.
Un entero de 64bits se convertirá en doble si el resultado no se puede representar como un entero de 64bits.
Si alguno de los argumentos se resuelve como null o hace referencia a un campo faltante, $pow devuelve null. Si alguno de los argumentos se resuelve como NaN, $pow devuelve NaN.
Ejemplo | Resultados |
|---|---|
|
|
|
|
|
|
|
|
Ejemplo
Crea una colección llamada quizzes con los siguientes documentos:
db.quizzes.insertMany( [ { _id : 1, scores : [ { name : "dave123", score : 85 }, { name : "dave2", score : 90 }, { name : "ahn", score : 71 } ] }, { _id : 2, scores : [ { name : "li", quiz : 2, score : 96 }, { name : "annT", score : 77 }, { name : "ty", score : 82 } ] } ] )
El siguiente ejemplo calcula la varianza para cada prueba:
db.quizzes.aggregate( [ { $project: { variance: { $pow: [ { $stdDevPop: "$scores.score" }, 2 ] } } } ] )
La operación devuelve los siguientes resultados:
{ _id : 1, variance : 64.66666666666667 } { _id : 2, variance : 64.66666666666667 }