2d ์ธ๋ฑ์ค
์ด ํ์ด์ง์ ๋ด์ฉ
2d ์ธ๋ฑ์ค๋ 2์ฐจ์ ํ๋ฉด ์ ์ ์ผ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๋ํ ์ฟผ๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค. 2d ์ธ๋ฑ์ค๋ ๋ ๊ฑฐ์ ์ขํ ์์ ๋ํ ์ฟผ๋ฆฌ์ ์ฌ์ฉ๋ฉ๋๋ค.
2D ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ ค๋ฉด ๋ฌธ์์ด 2d
๋ฅผ ์ธ๋ฑ์ค ์ ํ์ผ๋ก ์ง์ ํฉ๋๋ค.
db.<collection>.createIndex( { <location field> : "2d" } )
GeoJSON ๊ฐ์ฒด์ ๋ํ ์ฟผ๋ฆฌ์๋ 2D ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. GeoJSON ๊ฐ์ฒด์์ ์ฟผ๋ฆฌ๋ฅผ ํ์ฑํํ๋ ค๋ฉด 2dsphere ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฐธ๊ณ
2d ์ธ๋ฑ์ค ๋ฅผ ๋ง๋ค ๋ ์ฒซ ๋ฒ์งธ ๊ฐ(๊ฒฝ๋)์ -180 ์์ 180 ์ฌ์ด์ฌ์ผ ํฉ๋๋ค. ๋ ๋ฒ์งธ ๊ฐ(์๋)์ -90 ~ 90 ์ฌ์ด์ฌ์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ 2d ์ธ๋ฑ์ค ์ min
๋ฐ max
์ต์
์ผ๋ก ์ด๋ฌํ ๊ธฐ๋ณธ ์ ํ์ ์ฌ์ ์ํ ์ ์์ต๋๋ค. 2dsphere ์ธ๋ฑ์ค ์ขํ์ ๋ฌ๋ฆฌ2d indexes
๊ฐ์ ๊ตฌ ์ฃผ์๋ฅผ '๋ํ'ํ์ง ์์ต๋๋ค.
์ฌ์ฉ ์ฌ๋ก
2D ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ 2์ฐจ์ ํ๋ฉด ๋ด์ ํํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ๊ณ ๊ณ์ฐ์ ์ํํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ ์์ ์ํ ๊ฐ์ ์๊ฐ์ ์ ์ฌ์ฑ์ ๋ถ์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
2์ฐจ์ ๊ทธ๋ํ์์ ๊ณ์ฐ์ ์ํํ ์ ์๋ ๊ณ์ฐ๊ธฐ์ ๋๋ค.
2์ฐจ์ ๋งต์์ ํ๋ ์ด์ด ๊ฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ ๋ชจ๋ฐ์ผ ๊ฒ์์ ๋๋ค.
์์ํ๊ธฐ
2dsphere ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๊ณ ์ฟผ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๋ฉด ๋ค์์ ์ฐธ์กฐํ์ธ์.
์ธ๋ถ ์ ๋ณด
์ง์๋๋ ๊ณ์ฐ
2D ์ธ๋ฑ์ค๋ ํํํ ์ ํด๋ฆฌ๋ ํ๋ฉด์์ ๊ณ์ฐ์ ์ง์ํฉ๋๋ค.
๊ตฌํ ๊ธฐํํ ๊ณ์ฐ์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ GeoJSON ๊ฐ์ฒด๋ก ์ ์ฅํ๊ณ 2dsphere ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ง๋ฆฌ ๊ณต๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค.
๋ณตํฉ 2D ์ธ๋ฑ์ค
๋ ํ๋๋ฅผ ์ฐธ์กฐํ๋ ๋ณตํฉ 2D ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ํ๋๋ ์์น ํ๋์ฌ์ผ ํฉ๋๋ค. ์ธ๋ฑ์ค๋ ์ด ํ๋์์ ๋จผ์ ์ ํํ๋ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
๋ ๋ฒ์งธ ํ๋๋ ์ถ๊ฐ ๊ธฐ์ค์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๋ฅผ ์ถ๊ฐ๋ก ํํฐ๋งํฉ๋๋ค.
๋ณตํฉ 2D ์ธ๋ฑ์ค๋ ์ฟผ๋ฆฌ๋ฅผ ํฌ๊ดํ ์ ์์ต๋๋ค.
sparse
์์ฑ
2D ์ธ๋ฑ์ค๋ ํญ์ ํฌ๋ฐํ๋ฉฐ ํฌ๋ฐ ์ต์
์ ๋ฌด์ํฉ๋๋ค. ๋ฌธ์์ 2D ์ธ๋ฑ์ค ํ๋๊ฐ ์๋ ๊ฒฝ์ฐ(๋๋ ํ๋๊ฐ null
์ด๊ฑฐ๋ ๋น ๋ฐฐ์ด์ธ ๊ฒฝ์ฐ), MongoDB๋ ๋ฌธ์์ ๋ํ ํญ๋ชฉ์ 2D ์ธ๋ฑ์ค์ ์ถ๊ฐํ์ง ์์ต๋๋ค. ์ฝ์
์ ๊ฒฝ์ฐ, MongoDB๋ ๋ฌธ์๋ฅผ ์ฝ์
ํ์ง๋ง 2D ์ธ๋ฑ์ค์๋ ์ถ๊ฐํ์ง ์์ต๋๋ค.
๋ค๋ฅธ ์ ํ์ ํค์ ํจ๊ป 2D ์ธ๋ฑ์ค ํค๊ฐ ํฌํจ๋ ๋ณตํฉ ์ธ๋ฑ์ค์ ๊ฒฝ์ฐ, 2D ์ธ๋ฑ์ค ํ๋๋ง์ด ์ธ๋ฑ์ค๊ฐ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.