Docs Menu
Docs Home
/ /

$pow (agregación)

$pow

Eleva un número al exponente especificado y devuelve el resultado. $pow tiene 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 0 a un exponente negativo.

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

{ $pow: [ 5, 0 ] }

1

{ $pow: [ 5, 2 ] }

25

{ $pow: [ 5, -2 ] }

0.04

{ $pow: [ -5, 0.5 ] }

NaN

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 }

Volver

$or

En esta página