Docs Menu
Docs Home
/ /

$asin (operador de expresión)

$asin

Devuelve el seno inverso (arcoseno) de un valor.

$asin tiene la siguiente sintaxis:

{ $asin: <expression> }

$asin toma cualquier válido expresión que se resuelve en un número entre -1 y, por 1 -1 <= value <= 1ejemplo.

$asin devuelve valores en radianes. Utilice el operador para convertir el valor de salida de radianes a $radiansToDegrees grados.

De forma predeterminada, devuelve $asin valores double como. también puede$asin 128devolver 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.

Si el argumento se resuelve en un valor de null o hace referencia a un campo que falta, $asin nulldevuelve. Si se resuelve NaN en, $asin NaNdevuelve. Si se resuelve en un valor fuera de los límites de [-1, 1] inclusive, genera un$asin error.

Ejemplo
Resultados

{ $asin: NaN }

NaN

{ $asin: null }

null

{ $asin : Infinity}

or

{ $asin : -Infinity }

Lanza un mensaje de error similar a la siguiente salida formateada:

"errmsg" :
"Failed to optimize pipeline :: caused by :: cannot
apply $asin to -inf, value must in [-1,1]"

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 opuesto $asin a side_a y agregarlo al documento $addFields de entrada utilizando la etapa de canalización.

db.trigonometry.aggregate([
{
$addFields : {
"angle_a" : {
$radiansToDegrees : {
$asin : {
$divide : [ "$side_a", "$hypotenuse" ]
}
}
}
}
}
])

La expresión convierte $radiansToDegrees $asin 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("36.86989764584402129685561255909341")
}

Dado side_a que y hypotenuse se almacenan como 128decimales de bits, la salida de es $asin 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 $asin a side_a y agregarlo al documento $addFields de entrada utilizando la etapa de canalización.

db.trigonometry.aggregate([
{
$addFields : {
"angle_a" : {
$asin : {
$divide : [ "$side_a", "$hypotenuse" ]
}
}
}
}
])

El comando devuelve la siguiente salida:

{
"_id" : ObjectId("5c50782193f833234ba90d85"),
"side_a" : Decimal128("3"),
"side_b" : Decimal128("4"),
"hypotenuse" : Decimal128("5"),
"angle_a" : Decimal128("0.6435011087932843868028092287173226")
}

Dado side_a que y hypotenuse se almacenan como 128decimales de bits, la salida de es $asin un 128decimal de bits.

Volver

$arrayToObject

En esta página