์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ์ฒญํฌ ๋ถํ
๊ธฐ๋ณธ์ ์ผ๋ก MongoDB๋ ์ฒญํฌ์ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ ๋๋ง ์ ์ฌ์ ์ผ๋ก ์ฒญํฌ๋ฅผ ๋ถํ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐํฌํ ํ์ฒ๋ผ ํด๋ฌ์คํฐ์ ๋ฐ์ดํฐ ์์ด ๋ง๊ณ ์ฒญํฌ๊ฐ ๋งค์ฐ ์ ์ ๊ฒฝ์ฐ์๋ ์ฒญํฌ๋ฅผ ์๋์ผ๋ก ๋ถํ ํด์ผ ํ ์ ์์ต๋๋ค.
์ฒญํฌ๋ฅผ ์๋์ผ๋ก ๋ถํ ํ๋ ค๋ฉด middle
๋๋
find
ํ๋์ ํจ๊ป split
๋ช
๋ น์ ์ฌ์ฉํฉ๋๋ค.
mongosh
๋ sh.splitFind()
๋ฐ sh.splitAt()
๋์ฐ๋ฏธ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
splitFind()
๋ ์ด ์ฟผ๋ฆฌ์ ์ผ์นํ๋ ์ฒซ ๋ฒ์งธ ๋ฐํ ๋ฌธ์๊ฐ ํฌํจ๋ ์ฒญํฌ๋ฅผ ๋์ผํ ํฌ๊ธฐ์ ์ฒญํฌ ๋ ๊ฐ๋ก ๋ถํ ํฉ๋๋ค. ์ค๋ ์ปฌ๋ ์
์ ์ ์ฒด ๋ค์์คํ์ด์ค(์: '<database>.<collection>
')๋ฅผ splitFind()
๋ก ์ง์ ํด์ผ ํฉ๋๋ค. splitFind()
์ ์ฟผ๋ฆฌ๋ ์ค๋ ํค๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์ง๋ง, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์ ์ค๋ ํค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์
๋๋ค.
์์
๋ค์ ๋ช
๋ น์ records
๋ฐ์ดํฐ๋ฒ ์ด์ค์ people
์ปฌ๋ ์
์ ์๋ zipcode
ํ๋์ ๋ํ 63109
๊ฐ์ ํฌํจํ๋ ์ฒญํฌ๋ฅผ ๋ถํ ํฉ๋๋ค.
sh.splitFind( "records.people", { "zipcode": "63109" } )
splitAt()
์ ์ฌ์ฉํ์ฌ ์ฒญํฌ๋ฅผ ๋๋ก ๋ถํ ํ๊ณ , ์ฟผ๋ฆฌ๋ ๋ฌธ์๋ฅผ ์ ์ฒญํฌ์ ํํ์ผ๋ก ์ฌ์ฉํฉ๋๋ค:
์์
๋ค์ ๋ช
๋ น์ records
๋ฐ์ดํฐ๋ฒ ์ด์ค์ people
์ปฌ๋ ์
์ ์๋ zipcode
ํ๋์ ๋ํ 63109
๊ฐ์ด ํฌํจ๋ ์ฒญํฌ๋ฅผ ๋ถํ ํฉ๋๋ค.
sh.splitAt( "records.people", { "zipcode": "63109" } )
์ฐธ๊ณ
splitAt()
์(๋) ๋ฐ๋์ ์ฒญํฌ๋ฅผ ํฌ๊ธฐ๊ฐ ๊ฐ์ ๋ ๊ฐ์ ์ฒญํฌ๋ก ๋ถํ ํ์ง ์์ต๋๋ค. ๋ถํ ์ ํด๋น ๋ฌธ์๊ฐ ์ฒญํฌ์ ์ด๋์ ์๋์ง์ ๊ด๊ณ์์ด ์ฟผ๋ฆฌ์ ์ผ์นํ๋ ๋ฌธ์ ์์น์์ ๋ฐ์ํฉ๋๋ค.