

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.

# $ atán
<a name="atan"></a>

Nuevo a partir de la versión 8.0.1.

El `$atan` operador de Amazon DocumentDB devuelve la tangente inversa (arcotangente) de un valor.

La expresión de entrada debe convertirse en un valor numérico.

El resultado se expresa en radianes. Para obtener grados, aplíquelos `$radiansToDegrees` a la salida.

El tipo de devolución es `double` el predeterminado. Si la entrada es un decimal de 128 bits, la salida también es un decimal de 128 bits.

**Parámetros**
+ `expression`: expresión que se resuelve en un número.

## Comportamiento
<a name="atan-behavior"></a>

**null y NaN **


| Ejemplo | Resultados | 
| --- | --- | 
| { $atan: NaN } | NaN | 
| { $atan: null } | null | 

Cuando la entrada es `null` o falta el campo al que se hace referencia, el resultado es`null`. Una entrada de `NaN` productos`NaN`.

## Ejemplo (MongoDB Shell)
<a name="atan-examples"></a>

El siguiente ejemplo muestra cómo usar el `$atan` operador para calcular el arcotangente de un valor.

**Cree documentos de muestra **

```
db.values.insertMany([
  { "_id": 1, "value": 0 },
  { "_id": 2, "value": 1 },
  { "_id": 3, "value": -1 }
]);
```

**Ejemplo de consulta **

```
db.values.aggregate([
  { $project: {
    "angle": { $atan: "$value" }
  }}
]);
```

**Salida**

```
[
  { "_id": 1, "angle": 0 },
  { "_id": 2, "angle": 0.7853981633974483 },
  { "_id": 3, "angle": -0.7853981633974483 }
]
```

## Ejemplos de código
<a name="atan-code"></a>

Para ver un ejemplo de código sobre el uso del `$atan` operador, elige la pestaña del idioma que quieres usar:

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function main() {
  const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
  const db = client.db('test');
  const collection = db.collection('values');

  const result = await collection.aggregate([
    { $project: {
      "angle": { $atan: "$value" }
    }}
  ]).toArray();

  console.log(result);
  await client.close();
}

main();
```

------
#### [ Python ]

```
from pymongo import MongoClient

def main():
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client['test']
    collection = db['values']

    result = list(collection.aggregate([
        { '$project': {
            'angle': { '$atan': '$value' }
        }}
    ]))

    print(result)
    client.close()

if __name__ == "__main__":
    main()
```

------