Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$cos (operador de expresión)

$cos

Devuelve el coseno de un valor medido en radianes.

$cos tiene la siguiente sintaxis:

{ $cos: <expression> }

$cos takes any valid expresión que resuelve un número. Si la expresión retorna un valor en grados, utiliza el operador $degreesToRadians para convertir el resultado a radianes.

Por defecto, $cos devuelve valores como un double. $cos también puede devolver valores como un decimal de128-bits, siempre y cuando el <expression> se resuelva en un valor decimal de 128-bits.

Para obtener más información sobre las expresiones, consulta Expresiones.

Si el argumento se resuelve en un valor de null o hace referencia a un campo que falta, $cos devuelve null. Si el argumento se resuelve en NaN, $cos devuelve NaN. Si el argumento se resuelve en infinito negativo o positivo, $cos arroja un error.

Ejemplo
Resultados

{ $cos: NaN }

NaN

{ $cos: null }

null

{ $cos : Infinity}

or

{ $cos : -Infinity }

Genera un mensaje de error que se asemeja al siguiente resultado formateado:

"errmsg" :
"Failed to optimize pipeline :: caused by :: cannot
apply $cos to -inf, value must in (-inf,inf)"

La colección trigonometry contiene un documento que almacena la hipotenusa y un ángulo en un triángulo rectángulo:

{
"_id" : ObjectId("5c50782193f833234ba90d85"),
"angle_a" : Decimal128("53.13010235415597870314438744090659"),
"hypotenuse" : Decimal128("5")
}

La siguiente operación de agregación utiliza la expresión $cos para calcular el lado adyacente a angle_a y añadirlo al documento de entrada usando la etapa de pipeline $addFields.

db.trigonometry.aggregate([
{
$addFields : {
"side_a" : {
$multiply : [
{ $cos : {$degreesToRadians : "$angle_a"} },
"$hypotenuse"
]
}
}
}
])

La expresión $degreesToRadians convierte el valor en grados de angle_a al valor equivalente en radianes.

El comando devuelve la siguiente salida:

{
"_id" : ObjectId("5c50782193f833234ba90d85"),
"angle_a" : Decimal128("53.13010235415597870314438744090659"),
"side_a" : Decimal128("2.999999999999999999999999999999999"),
"hypotenuse" : Decimal128("5"),
}

Dado que angle_a y hypotenuse se almacenan como decimales de128bits, la salida de $cos es un decimal de 128bits.

La colección trigonometry contiene un documento que almacena la hipotenusa y un ángulo en un triángulo rectángulo:

{
"_id" : ObjectId("5c50782193f833234ba90d85"),
"angle_a" : Decimal128("0.9272952180016122324285124629224288"),
"hypotenuse" : Decimal128("5")
}

La siguiente operación de agregación utiliza la expresión $cos para calcular el lado adyacente a angle_a y añadirlo al documento de entrada usando la etapa de pipeline $addFields.

db.trigonometry.aggregate([
{
$addFields : {
"side_b" : {
$multiply : [
{ $cos : "$angle_a" },
"$hypotenuse"
]
}
}
}
])

El comando devuelve la siguiente salida:

{
"_id" : ObjectId("5c50782193f833234ba90d85"),
"angle_a" : Decimal128("0.9272952180016122324285124629224288"),
"side_b" : Decimal128("3.000000000000000000000000000000000"),
"hypotenuse" : Decimal128("5"),
}

Dado que angle_a y hypotenuse se almacenan como decimales de128bits, la salida de $cos es un decimal de 128bits.

Volver

$convert

En esta página