๋งต-๋์์ฑ ๊ฐ์
์ฐธ๊ณ
๋งต ๋ฆฌ๋์ค์ ๋์์ผ๋ก์์ ์ง๊ณ ํ์ดํ๋ผ์ธ
MongoDB 5.0 ๋ถํฐ ๋งต ๋ฆฌ๋์ค ๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
๋งต ๋ฆฌ๋์ค ๋์ ์ง๊ณ ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ง๊ณ ํ์ดํ๋ผ์ธ์ ๋งต ๋ฆฌ๋์ค๋ณด๋ค ์ฑ๋ฅ๊ณผ ์ ์ฉ์ฑ ์ธก๋ฉด์์ ๋ ์ฐ์ํฉ๋๋ค.
4}
$group
$merge
, ๋ฑ๊ณผ ๊ฐ์ ์ง๊ณ ํ์ดํ๋ผ์ธ ๋จ๊ณ๋ฅผ ์ฌ์ฉํ์ฌ ๋งต ์ถ์ ์ฐ์ฐ์ ๋ค์ ์์ฑํ ์ ์์ต๋๋ค.์ฌ์ฉ์ ์ง์ ๊ธฐ๋ฅ์ด ํ์ํ ๋งต ๋ฆฌ๋์ค ์์ ์ ๊ฒฝ์ฐ
$accumulator
๋ฐ$function
์ง๊ณ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ JavaScript์์ ์ฌ์ฉ์ ์ง์ ์ง๊ณ ํํ์์ ์ ์ํ ์ ์์ต๋๋ค.
๋งต ๋ฆฌ๋์ค ๋์์ผ๋ก์์ ์ง๊ณ ํ์ดํ๋ผ์ธ ์์๋ ๋ค์์ ์ฐธ์กฐํ์ธ์.
๋งต ๋ฆฌ๋์ค ์์
์ ์
๋ ฅ collection์์ ์ฝ๊ธฐ, map
ํจ์ ์คํ, reduce
ํจ์ ์คํ, ์ฒ๋ฆฌ ์ค ์์ collection์ ์ฐ๊ธฐ, ์ถ๋ ฅ collection์ ์ฐ๊ธฐ ๋ฑ ๋ง์ ์์
์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์์ ์ค์ map-reduce๋ ๋ค์๊ณผ ๊ฐ์ ์ ๊ธ์ ์ฌ์ฉํฉ๋๋ค.
์ฝ๊ธฐ ๋จ๊ณ์์๋ ์ฝ๊ธฐ ์ ๊ธ(read lock)์ ์ฌ์ฉํฉ๋๋ค. 100๊ฐ์ ๋ฌธ์๋ง๋ค ์์ฑ๋ฉ๋๋ค.
์์ ์ปฌ๋ ์ ์ ๋ํ ์ฝ์ ์ ๋จ์ผ ์ฐ๊ธฐ์ ๋ํด ์ฐ๊ธฐ ์ ๊ธ(write lock)์ ์ฌ์ฉํฉ๋๋ค.
์ถ๋ ฅ collection์ด ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ, ์ถ๋ ฅ collection์ ๋ง๋ค ๋๋ ์ฐ๊ธฐ ์ ๊ธ (write lock)์ด ํ์ํฉ๋๋ค.
์ถ๋ ฅ ์ปฌ๋ ์ ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ ์ถ๋ ฅ ์์ (์:
merge
,replace
,reduce
)๋ ์ฐ๊ธฐ ์ ๊ธ(write lock)์ ์ฌ์ฉํฉ๋๋ค. ์ด ์ฐ๊ธฐ ์ ๊ธ (write lock)์ ๊ธ๋ก๋ฒ ์ด๋ฉฐmongod
์ธ์คํด์ค์ ๋ํ ๋ชจ๋ ์์ ์ ์ฐจ๋จํฉ๋๋ค.