Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

$pow (집계)

이 페이지의 내용

  • 정의
  • 행동
  • 예시
$pow

숫자를 지정된 지수로 올리고 결과를 반환합니다. $pow 의 구문은 다음과 같습니다.

{ $pow: [ <number>, <exponent> ] }

<number> 표현식 은 숫자로 해석되는 한 유효한 표현식 이 될 수 있습니다.

<exponent> 표현식은 숫자로 해석되는 한 유효한 표현식 일 수 있습니다.

0 값을 음수 지수로 올릴 수 없습니다.

입력 타입이 혼합될 때 $pow은 더 작은 입력 타입을 두 타입 중 더 큰 타입으로 승격합니다. 타입은 더 넓은 범위의 값을 표현할 수 있을 때 더 큰 것으로 간주됩니다. 숫자 타입은 작은 것부터 큰 것 순으로 integer → long → double → decimal입니다.

또한 더 큰 입력 유형은 결과 유형도 결정합니다. 단, 연산 오버플로가 발생하여 더 큰 데이터 유형이 나타내는 범위를 벗어나지 않아야 합니다. 오버플로의 경우 $pow은 다음 순서에 따라 결과를 승격합니다.

  • 더 큰 입력 유형이 integer인 경우 결과 유형은 long으로 승격됩니다.

  • 더 큰 입력 유형이 long인 경우 결과 유형은 double으로 승격됩니다.

  • 더 큰 유형이 double 또는 decimal인 경우 오버플로 결과는 + 또는 - 무한대로 표현됩니다. 결과의 유형 승격은 없습니다.

두 인수 중 하나가 null 값으로 해석되거나 누락된 필드를 참조하는 경우 $pownull을 반환합니다. 두 인수 중 하나가 NaN 값으로 해석되면 $powNaN을 반환합니다.

예시
결과

{ $pow: [ 5, 0 ] }

1

{ $pow: [ 5, 2 ] }

25

{ $pow: [ 5, -2 ] }

0.04

{ $pow: [ -5, 0.5 ] }

NaN

다음 문서를 사용하여 quizzes라는 컬렉션을 만듭니다.

db.quizzes.insertMany( [
{
_id : 1,
scores : [
{ name : "dave123", score : 85 },
{ name : "dave2", score : 90 },
{ name : "ahn", score : 71 }
]
},
{
_id : 2,
scores : [
{ name : "li", quiz : 2, score : 96 },
{ name : "annT", score : 77 },
{ name : "ty", score : 82 }
]
}
] )

다음 예시에서는 각 퀴즈의 분산을 계산합니다.

db.quizzes.aggregate( [
{ $project: { variance: { $pow: [ { $stdDevPop: "$scores.score" }, 2 ] } } }
] )

이 연산은 다음과 같은 결과를 반환합니다.

{ _id : 1, variance : 64.66666666666667 }
{ _id : 2, variance : 64.66666666666667 }

돌아가기

$percentile

이 페이지의 내용