Server
[DB] MongoDB
soogoori
2024. 7. 8. 13:58
MongoDB ํน์ง
- ์คํ์์ค ๊ธฐ๋ฐ์ NoSQL DB
- ์ฌ์ ์ ์๋ ์คํค๋ง ์์ด ์ ์ฐํ๊ฒ ๋ฐ์ดํฐ ์ ์ฅ ๐ row, column ํ์ X
- ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ ธ๋์ ๋ถ์ฐํ์ฌ ์ ์ฅ, ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ๋ค์ํ ์ข ๋ฅ์ ์ธ๋ฑ์ค ์ง์
- ๋ฐ์ดํฐ ์ฐ๊ธฐ๊ฐ ๋ง์ ์๋น์ค
๐ BSON ํตํด ์ฐ๊ธฐ๊ฐ ๋น ๋ฅด๊ณ ๋ฆฌ์์ค๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ
๐ collection์ ์ฌ๋ฌ ์๋ฒ๋ก ๋ถํ ํ์ฌ ์ ์ฅ ๋ฐ ์กฐํํ๋ sharding ์ง์- ex) IoT ๋ฐ ์ผ์ ๋ฐ์ดํฐ ๊ด๋ฆฌ ์๋น์ค ๐ ๋ฐ์ดํฐ ์ฐ๊ธฐ ๋ง์ด ๋ฐ์ (์ด๋ฒคํธ ๋ฐํ)
- ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์๋น์ค
- ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์๋ฒ์ ๋๋ ์ ์ ์ฅํ๊ณ ์ฝ๊ฒ ์๋ฒ ์ถ๊ฐ ๊ฐ๋ฅ
BSON
- Binary ํ์์ JSON
- JSON๋ณด๋ค ๋น ๋ฅธ ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ
- ํ๋์ ์์์ ๋ฐ๋ผ์ ์ธ์ฝ๋ฉ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง
- ๋ค์ํ ํ์
์ง์
- document์ id : ObjectId
- ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ : BinData
- ๋ ์ง : Date, ISODate
- ์ ๊ทํํ์
- nested JSON ๐ ๋์ฑ ๋ณต์กํ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ ์ฅ ๊ฐ๋ฅ
- MongoDB BSON ์ธ์ฝ๋ฉ
- ์ฒซ ์ค ๐ ์ ์ฒด document ํฌ๊ธฐ ๊ฐ๋ฆฌํด
- ๋ฐ์ดํฐ ํ์ , ํ๋๋ช , ๊ธธ์ด(๋ฐ์ดํฐ ํ์ ์ ๋ฐ๋ผ optional), ๊ฐ์ผ๋ก ๊ตฌ์ฑ
Document
- ํ๋์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํด
- RDB์ Row์ ํด๋น (โ record)
- ํ๋์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ค์ฒฉ๋ ํ์ Document๋ ๋ฐฐ์ด ํฌํจ ๊ฐ๋ฅ
- BSON ํ์์ผ๋ก ์ ์ฅ๋๋ฉฐ BSON์์ ์ง์ํ๋ ๋ฐ์ดํฐ ํ์ ์ฌ์ฉ
Collection
- MongoDB Document๋ค์ ์ ์ฅํ๋ ๋จ์
- RDB์ Table์ ํด๋น
- ํ๋์ Collection ๋ด์์ Document๋ง๋ค ๋ค๋ฅธ ํ๋์ ๋ฐ์ดํฐ ํ์ ๊ฐ์ง ์ ์์
Database
- MongoDB Collection์ ์ ์ฅํ๋ ์ปจํ ์ด๋
- Document๋ฅผ ์ถ๊ฐํ Collection์ด ์๋ค๋ฉด ์๋์ผ๋ก collection ์์ฑ
- blogs ๐ Collection
- admin ๐ database
ํธ๋์ญ์
- ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์์ ์ปฌ๋ ์ ์ฌ์ด์ ์์ ์ํ ๊ฐ๋ฅ ๐ ACID ๋ณด์ฅ
- ์ฌ๋ฌ ์ค๋์ ์ํฅ์ ์ฃผ๋ ํธ๋์ญ์ ์ ๊ฒฝ์ฐ ์ฟผ๋ฆฌ๊ฐ broadcast ๋๋ฏ๋ก ์ฑ๋ฅ์ ํฐ ์ํฅ
- 1๋ฒ ์ฌ์๋ ํ ์คํจ์ ํด๋ผ์ด์ธํธ์ ์๋ฌ ์ ํ
RDB vs MongoDB
์ฐธ๊ณ ์๋ฃ
https://blog.jetbrains.com/idea/2019/10/intellij-idea-2019-3-eap5-mongodb-support-template-and-more/
https://www.linkedin.com/pulse/relational-database-vs-mongodb-shaharyar-saleem/
https://www.mongodb.com/docs/v4.2/core/databases-and-collections/