Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

$pow (agregação)

Nesta página

  • Definição
  • Comportamento
  • Exemplo
$pow

Novo na versão 3.2.

Cria um número para o expoente especificado e retorna o resultado. $pow tem a seguinte sintaxe:

{ $pow: [ <number>, <exponent> ] }

A expressão <number> pode ser qualquer expressão válida, desde que seja resolvida como um número.

A expressão <exponent> pode ser qualquer expressão válida, desde que seja resolvida como um número.

Você não pode aumentar 0 para um expoente negativo.

O resultado terá o mesmo tipo da entrada, exceto quando não puder ser representado com precisão nesse tipo. Nesses casos:

  • Um número inteiro de 32 bits será convertido para um número inteiro de 64 bits se o resultado for representável como um número inteiro de 64 bits.

  • Um inteiro de 32 bits será convertido em duplo se o resultado não for representável como um inteiro de 64 bits.

  • Um número inteiro de 64 bits será convertido em dobro se o resultado não for representável como um número inteiro de 64 bits.

Se qualquer um dos argumentos resultar em um valor de null ou se referir a um campo ausente, $pow retornará null. Se qualquer um dos argumentos se resolver em NaN, $pow retornará NaN.

Exemplo
Resultados
{ $pow: [ 5, 0 ] }
1
{ $pow: [ 5, 2 ] }
25
{ $pow: [ 5, -2 ] }
0.04
{ $pow: [ -5, 0.5 ] }
NaN

Crie uma coleção chamada quizzes com os seguintes 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 }
]
}
] )

O exemplo a seguir calcula a variação para cada teste:

db.quizzes.aggregate( [
{ $project: { variance: { $pow: [ { $stdDevPop: "$scores.score" }, 2 ] } } }
] )

A operação retorna os seguintes resultados:

{ _id : 1, variance : 64.66666666666667 }
{ _id : 2, variance : 64.66666666666667 }
← $ou (agregação)