Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
$atan2
Nuevo a partir de la versión 8.0.1.
El $atan2 operador de Amazon DocumentDB devuelve la tangente inversa (arcotangente) dey / x, donde y y x son los valores primero y segundo pasados a la expresión, respectivamente.
Ambas expresiones deben convertirse en valores numéricos. El operador usa el signo de ambos argumentos para determinar el cuadrante correcto.
El resultado está en radianes. Para obtener grados, aplíquelos $radiansToDegrees a la salida.
El tipo de devolución es double el predeterminado. Si las entradas son decimales de 128 bits, la salida también es un decimal de 128 bits.
Parámetros
-
expression 1(y): expresión que se resuelve en un número que representa la coordenada y. -
expression 2(x): expresión que se resuelve en un número que representa la coordenada x.
Comportamiento
null y NaN
Si alguno de los argumentos es null (o hace referencia a un campo que falta), el resultado esnull. Si alguno de los argumentos NaN lo es, el resultado esNaN. Cuando un argumento es null y el otro esNaN, null tiene prioridad.
| Ejemplo | Resultados |
|---|---|
{ $atan2: [ NaN, <value> ] } |
NaN |
{ $atan2: [ <value>, NaN ] } |
NaN |
{ $atan2: [ null, <value> ] } |
null |
{ $atan2: [ <value>, null ] } |
null |
{ $atan2: [ NaN, null ] } |
null |
{ $atan2: [ null, NaN ] } |
null |
Ejemplo (MongoDB Shell)
El siguiente ejemplo muestra cómo usar el $atan2 operador para calcular el arcotangente de un conjunto y/x de puntos.
Cree documentos de muestra
db.points.insertMany([ { "_id": 1, "y": 1, "x": 1 }, { "_id": 2, "y": 1, "x": 0 }, { "_id": 3, "y": -1, "x": -1 } ]);
Ejemplo de consulta
db.points.aggregate([ { $project: { "angle": { $atan2: ["$y", "$x"] } }} ]);
Salida
[
{ "_id": 1, "angle": 0.7853981633974483 },
{ "_id": 2, "angle": 1.5707963267948966 },
{ "_id": 3, "angle": -2.356194490192345 }
]
Ejemplos de código
Para ver un ejemplo de código sobre el uso del $atan2 operador, elige la pestaña del idioma que quieres usar: