$asin값의 사인의 역함수(아크 사인)를 반환합니다.
$asin의 구문은 다음과 같습니다:{ $asin: <expression> } 는 에서 사이의
$asin숫자로 해석되는 모든 유효한 표현식-11-1 <= value <= 1사용합니다(예:).$asin는 라디안$radiansToDegrees단위의 값을 반환합니다. 연산자 사용하여 출력 값을 라디안에서 각도로 변환합니다.$asin기본값double$asin128으로<expression>는 값을 로 반환합니다. 는 128가 비트 십진수 값으로 해석되는 한 값을 비트 십진수로 반환할 수도 있습니다.표현식에 대한 자세한 내용은 표현식을 참조하세요 .
행동
인수가 null $asin null값으로 해석되거나 누락된 필드 NaN $asin NaN참조하는 경우 은 을 반환합니다. 인수가 [-1, 1] 로 해석되면 는 을 반환합니다. $asin 인수가 범위를 벗어난 값으로 해석되면 오류가 발생합니다.
예시 | 결과 | |||
|---|---|---|---|---|
|
| |||
|
| |||
or
| 다음과 같은 형식의 출력과 유사한 오류 메시지를 표시합니다. |
예시
trigonometry 컬렉션에는 직각 삼각형의 세 변을 저장하는 문서가 포함되어 있습니다.
{ "_id" : ObjectId("5c50782193f833234ba90d85"), "side_a" : Decimal128("3"), "side_b" : Decimal128("4"), "hypotenuse" : Decimal128("5") }
다음 집계 작업은 표현식 사용하여 $asin 와 반대되는 각도를 계산하고 파이프라인 단계를 사용하여 side_a 입력 문서 에 $addFields 추가합니다.
db.trigonometry.aggregate([ { $addFields : { "angle_a" : { $radiansToDegrees : { $asin : { $divide : [ "$side_a", "$hypotenuse" ] } } } } } ])
$radiansToDegrees 표현식 에서 반환된 라디안 값을 $asin 해당 값(단위: 도)으로 변환합니다.
이 명령은 다음 출력을 반환합니다.
{ "_id" : ObjectId("5c50782193f833234ba90d85"), "side_a" : Decimal128("3"), "side_b" : Decimal128("4"), "hypotenuse" : Decimal128("5"), "angle_a" : Decimal128("36.86989764584402129685561255909341") }
side_a 및 는 hypotenuse 128비트 십진수로 저장되므로 $asin 의 출력은 128비트 십진수입니다.
trigonometry 컬렉션에는 직각 삼각형의 세 변을 저장하는 문서가 포함되어 있습니다.
{ "_id" : ObjectId("5c50782193f833234ba90d85"), "side_a" : Decimal128("3"), "side_b" : Decimal128("4"), "hypotenuse" : Decimal128("5") }
다음 집계 작업은 표현식 사용하여 $asin 에 인접한 각도를 계산하고 파이프라인 단계를 사용하여 side_a 입력 문서 $addFields 에 추가합니다.
db.trigonometry.aggregate([ { $addFields : { "angle_a" : { $asin : { $divide : [ "$side_a", "$hypotenuse" ] } } } } ])
이 명령은 다음 출력을 반환합니다.
{ "_id" : ObjectId("5c50782193f833234ba90d85"), "side_a" : Decimal128("3"), "side_b" : Decimal128("4"), "hypotenuse" : Decimal128("5"), "angle_a" : Decimal128("0.6435011087932843868028092287173226") }
side_a 및 는 hypotenuse 128비트 십진수로 저장되므로 $asin 의 출력은 128비트 십진수입니다.