Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$pow (operador de expresió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 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 0 a un exponente negativo.

Cuando se mezclan los tipos de entrada, $pow promueve el tipo de entrada menor al mayor de los dos. Un tipo se considera mayor cuando representa un rango más amplio de valores. El orden de los tipos numéricos, de menor a mayor, es: entero → largo → doble → decimal

El tipo de entrada mayor también determina el tipo de resultado, a menos que la operación se desborde y salga del rango representado por ese tipo de dato mayor. En casos de desbordamiento, $pow promueve el resultado según el siguiente orden:

  • Si el tipo de entrada más grande es integer, el tipo de resultado se eleva a long.

  • Si el tipo de entrada más grande es long, el tipo de resultado se eleva a double.

  • Si el tipo mayor es double o decimal, el resultado del desbordamiento se representa como + o - infinito. No hay promoción de tipo del resultado.

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

{ $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 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 }

Volver

$or

En esta página