Definição
- $pow
- Cria um número para o expoente especificado e retorna o resultado. - $powtem a seguinte sintaxe:- { $pow: [ <number>, <exponent> ] } - A expressão - <number>pode ser qualquerexpressã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 elevar - 0a um expoente negativo.
Comportamento
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 double se o resultado não for representável como um inteiro de 64 bits. 
- Um número inteiro de 64 bits será convertido em double se o resultado não for representável como um número inteiro de 64 bits. 
Se qualquer um dos argumentos for resolvido para 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 | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
Exemplo
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 variância de cada questionário:
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 }