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 expresión válida expresión, siempre que resuelva un número.La
<exponent>expresión puede ser cualquier expresión válida siempre que se resuelva en un número.No se puede 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 número entero de 32 bits se convertirá a un número entero de 64 bits si el resultado es representable como un número entero de 64 bits.
Un entero de 32 bits se convertirá en un double si el resultado no puede representarse como un entero de 64 bits.
Un entero de 64 bits se convertirá a double si el resultado no se puede representar como un entero de 64 bits.
Si alguno de los argumentos se resuelve en un valor de null o se refiere a un campo que falta, $pow devuelve null. Si alguno de los argumentos se resuelve en NaN, $pow retorna 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 cuestionario:
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 }