$atanDevuelve la tangente inversa (arco tangente) de un valor.
$atantiene la siguiente sintaxis:{ $atan: <expression> } $atantoma cualquier válido expresión que se resuelve en un número.$atandevuelve valores en radianes. Utilice el operador para convertir el valor de salida de radianes a$radiansToDegreesgrados.De forma predeterminada, devuelve
$atanvaloresdoublecomo. también puede$atan128devolver valores como un decimal de bits siempre que se<expression>resuelva en un 128valor decimal de bits.Para obtener más información sobre las expresiones, consulta Expresiones.
Comportamiento
null y NaN
Si el argumento resuelve a un valor de null o hace referencia a un campo que falta, $atan devuelve null. Si el argumento se resuelve como NaN, $tan devuelve NaN.
Ejemplo | Resultados |
|---|---|
|
|
|
|
Ejemplo
La colección trigonometry contiene un documento que almacena tres lados de un triángulo rectángulo:
{ "_id" : ObjectId("5c50782193f833234ba90d85"), "side_a" : Decimal128("3"), "side_b" : Decimal128("4"), "hypotenuse" : Decimal128("5") }
La siguiente operación de agregación utiliza la expresión para calcular el ángulo adyacente $atan a side_a y agregarlo al documento $addFields de entrada utilizando la etapa de canalización.
db.trigonometry.aggregate([ { $addFields : { "angle_a" : { $radiansToDegrees : { $atan : { $divide : [ "$side_b", "$side_a" ] } } } } } ])
La expresión convierte $radiansToDegrees $atan el valor en radianes devuelto por al valor equivalente en grados.
El comando devuelve la siguiente salida:
{ "_id" : ObjectId("5c50782193f833234ba90d85"), "side_a" : Decimal128("3"), "side_b" : Decimal128("4"), "hypotenuse" : Decimal128("5"), "angle_a" : Decimal128("53.13010235415597870314438744090658") }
Dado side_b que y side_a se almacenan como 128decimales de bits, la salida de es $atan un 128decimal de bits.
La colección trigonometry contiene un documento que almacena tres lados de un triángulo rectángulo:
{ "_id" : ObjectId("5c50782193f833234ba90d85"), "side_a" : Decimal128("3"), "side_b" : Decimal128("4"), "hypotenuse" : Decimal128("5") }
La siguiente operación de agregación utiliza la expresión para calcular el ángulo adyacente $atan a side_a y agregarlo al documento $addFields de entrada utilizando la etapa de canalización.
db.trigonometry.aggregate([ { $addFields : { "angle_a" : { $atan : { $divide : [ "$side_b", "$side_a" ] } } } } ])
El comando devuelve la siguiente salida:
{ "_id" : ObjectId("5c50782193f833234ba90d85"), "side_a" : Decimal128("3"), "side_b" : Decimal128("4"), "hypotenuse" : Decimal128("5"), "angle_a" : Decimal128("0.9272952180016122324285124629224287") }
Dado side_b que y side_a se almacenan como 128decimales de bits, la salida de es $atan un 128decimal de bits.