

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.

# $tan
<a name="tan"></a>

Nuevo a partir de la versión 8.0.1.

El `$tan` operador de Amazon DocumentDB devuelve la tangente de un valor que se mide en radianes.

La expresión de entrada debe convertirse en un valor numérico. Si el valor está en grados, aplíquelo `$degreesToRadians` antes de pasarlo a`$tan`.

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 en radianes.

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

**nulo, NaN y \+/- Infinito **


| Ejemplo | Resultados | 
| --- | --- | 
| { $tan: NaN } | NaN | 
| { $tan: null } | null | 
| { $tan: Infinity } o { $tan: -Infinity } | Lanza un error. | 

Cuando la entrada es `null` o falta el campo al que se hace referencia, `$tan` devuelve`null`. Una entrada de `NaN` productos`NaN`. El infinito positivo o negativo provoca un error porque la tangente no está definida en esos valores.

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

El siguiente ejemplo muestra cómo usar el `$tan` operador para calcular la tangente de un ángulo en radianes.

**Cree documentos de ejemplo **

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

**Ejemplo de consulta **

```
db.angles.aggregate([
  { $project: {
    "tangent": { $tan: "$angle" }
  }}
]);
```

**Salida**

```
[
  { "_id": 1, "tangent": 0 },
  { "_id": 2, "tangent": 0.9999999999999999 },
  { "_id": 3, "tangent": -0.9999999999999999 }
]
```

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

Para ver un ejemplo de código sobre el uso del `$tan` 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('angles');

  const result = await collection.aggregate([
    { $project: {
      "tangent": { $tan: "$angle" }
    }}
  ]).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['angles']

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

    print(result)
    client.close()

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

------