๋ฌธ์„œ ๋ฉ”๋‰ด
๋ฌธ์„œ ํ™ˆ
/
MongoDB ๋งค๋‰ด์–ผ
/ / /

$pow (์• ๊ทธ๋ฆฌ๊ฒŒ์ด์…˜)

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

  • ์ •์˜
  • ํ–‰๋™
  • ์˜ˆ์ œ
$pow

์ˆซ์ž๋ฅผ ์ง€์ •๋œ ์ง€์ˆ˜๋กœ ์˜ฌ๋ฆฌ๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. $pow ์˜ ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

<number> ํ‘œํ˜„์‹์€ ์ˆซ์ž๋กœ ํ•ด์„๋˜๋Š” ํ•œ ์œ ํšจํ•œ ํ‘œํ˜„์‹ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<exponent> ํ‘œํ˜„์‹์€ ์ˆซ์ž๋กœ ํ•ด์„๋˜๋Š” ํ•œ ์œ ํšจํ•œ ํ‘œํ˜„์‹ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

0 ์„ ์Œ์ˆ˜ ์ง€์ˆ˜๋กœ ์˜ฌ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋Š” ํ•ด๋‹น ์œ ํ˜•์œผ๋กœ ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„๋  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์ž…๋ ฅ๊ณผ ๋™์ผํ•œ ์œ ํ˜•์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ:

  • ๊ฒฐ๊ณผ๊ฐ€ 64๋น„ํŠธ ์ •์ˆ˜๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ 32๋น„ํŠธ ์ •์ˆ˜๋Š” 64๋น„ํŠธ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

  • ๊ฒฐ๊ณผ๊ฐ€ 64๋น„ํŠธ ์ •์ˆ˜๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ 32๋น„ํŠธ ์ •์ˆ˜๋Š” double๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

  • ๊ฒฐ๊ณผ๋ฅผ 64๋น„ํŠธ ์ •์ˆ˜๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ 64๋น„ํŠธ ์ •์ˆ˜๋Š” double๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

์ธ์ˆ˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ null ๊ฐ’์œผ๋กœ ํ•ด์„๋˜๊ฑฐ๋‚˜ ๋ˆ„๋ฝ๋œ ํ•„๋“œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ $pow ์€ null ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์ธ์ˆ˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ NaN ์œผ๋กœ ํ•ด์„๋˜๋ฉด $pow ๋Š” NaN ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ
๊ฒฐ๊ณผ
{ $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(์• ๊ทธ๋ฆฌ๊ฒŒ์ด์…˜)

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ