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

2d ์ธ๋ฑ์Šค

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

  • ์‚ฌ์šฉ ์‚ฌ๋ก€
  • ์‹œ์ž‘ํ•˜๊ธฐ
  • ์„ธ๋ถ€ ์ •๋ณด
  • ์ง€์›๋˜๋Š” ๊ณ„์‚ฐ
  • ๋ณตํ•ฉ 2D ์ธ๋ฑ์Šค
  • sparse ์†์„ฑ
  • ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ

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 ์ธ๋ฑ์Šค๋Š” ํ•ญ์ƒ ํฌ๋ฐ•ํ•˜๋ฉฐ ํฌ๋ฐ• ์˜ต์…˜์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์„œ์— 2D ์ธ๋ฑ์Šค ํ•„๋“œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ(๋˜๋Š” ํ•„๋“œ๊ฐ€ null์ด๊ฑฐ๋‚˜ ๋นˆ ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ), MongoDB๋Š” ๋ฌธ์„œ์— ๋Œ€ํ•œ ํ•ญ๋ชฉ์„ 2D ์ธ๋ฑ์Šค์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฝ์ž…์˜ ๊ฒฝ์šฐ, MongoDB๋Š” ๋ฌธ์„œ๋ฅผ ์‚ฝ์ž…ํ•˜์ง€๋งŒ 2D ์ธ๋ฑ์Šค์—๋Š” ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์œ ํ˜•์˜ ํ‚ค์™€ ํ•จ๊ป˜ 2D ์ธ๋ฑ์Šค ํ‚ค๊ฐ€ ํฌํ•จ๋œ ๋ณตํ•ฉ ์ธ๋ฑ์Šค์˜ ๊ฒฝ์šฐ, 2D ์ธ๋ฑ์Šค ํ•„๋“œ๋งŒ์ด ์ธ๋ฑ์Šค๊ฐ€ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๋Œ์•„๊ฐ€๊ธฐ

๋ฒ„์ „

๋‹ค์Œ

๋งŒ๋“ค๊ธฐ