$sqrt (agregação)
Nesta página
Definição
$sqrt
Calcula a raiz quadrada de um número positivo e retorna o resultado como um valor duplo.
$sqrt
tem a seguinte sintaxe:{ $sqrt: <number> } O argumento pode ser qualquerexpressão válida, desde que resolva para um número não negativo . Para obter mais informações sobre expressões, consulte Operadores de expressão.
Comportamento
O tipo de retorno padrão é um double
. Se pelo menos um operando for decimal
, o tipo de retorno será decimal.
Se o argumento for resolvido para um valor de null
ou se referir a um campo ausente, $sqrt
retornará null
. Se o argumento se resolve em NaN
, $sqrt
retorna NaN
.
$sqrt
erros em números negativos.
Exemplo | Resultados |
---|---|
{ $sqrt: 25 } | 5 |
{ $sqrt: 30 } | 5.477225575051661 |
{ $sqrt: null } | null |
Exemplo
Uma coleção points
contém os seguintes documentos:
{ _id: 1, p1: { x: 5, y: 8 }, p2: { x: 0, y: 5} } { _id: 2, p1: { x: -2, y: 1 }, p2: { x: 1, y: 5} } { _id: 3, p1: { x: 4, y: 4 }, p2: { x: 4, y: 0} }
O exemplo a seguir utiliza $sqrt
para calcular a distância entre p1
e p2
:
db.points.aggregate([ { $project: { distance: { $sqrt: { $add: [ { $pow: [ { $subtract: [ "$p2.y", "$p1.y" ] }, 2 ] }, { $pow: [ { $subtract: [ "$p2.x", "$p1.x" ] }, 2 ] } ] } } } } ])
A operação retorna os seguintes resultados:
{ "_id" : 1, "distance" : 5.830951894845301 } { "_id" : 2, "distance" : 5 } { "_id" : 3, "distance" : 4 }