Mongo DB in golang(draft)
MongoDB
MongoDB๋ C++๋ก ์์ฑ๋ ๋ํ์ ์ธ NoSQL์ด๋ค.
๋ณดํต AWS Document DB๋ Mongo Atlas๋ฅผ ์ด์ฉํ๊ณคํ๋๋ฐ, ๋ณธ ์์ ์์๋ Mongo Atlas๋ฅผ ์ด์ฉํ๋ค.
๊ณต์ ๋ฌธ์์์๋ Document oriented database๋ผ๊ณ ์๊ฐํ๊ณ ์๋๋ฐ, ์ฌ๊ธฐ์ ๋งํ๋ Document๋ RDMS์ record์ ๋น์ทํ ๊ฐ๋
์ด๋ค.
{
"_id": ObjectId("5099803df3f4948bd2f98391"),
"username": "velopert",
"name": { first: "M.J.", last: "Kim" }
}์์ ๊ฐ์ json ํํ์ ๋ฐ์ดํฐ๊ฐ ์๋ค๊ณ ์๊ฐํด๋ณด์.
์ค์ ๋ก MongoDB์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด ์์ ๊ฐ์ด ์์ฑ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
Document๋ ์ด๋ค ํํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์๋ก ๋ณด๋ ๊ด์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
Collection
Collection์ Document์ ๊ทธ๋ฃน์ด๋ค. RDMS์ ํ ์ด๋ธ๊ณผ ๋น์ทํ๋ค๊ณ ๋ณผ ์ ์์ง๋ง ์กฐ๊ธ ๋ค๋ฅธ๊ฒ, Document ์์ฒด๋ ๋์ ์ธ schema๋ฅผ ๊ฐ์ง๊ณ ์๋ค. (schema๊ฐ ์๋ค)
๊ฐ๋จํ๊ฒ ์๊ฐํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ผ์ด ๊ฐ๋ฅํ๋ค.
Collection 1
{
{
"_id": ObjectId("5099803df3f4948bd2f98391"),
"username": "velopert",
"name": { first: "M.J.", last: "Kim" }
},
{
"_id": ObjectId("5099803df3f4948bd2f98391"),
"name": { first: "M.J.", last: "Kim" }
}
}๊ฐ์ Collection์์ ๊ฐ๊ธฐ ๋ค๋ฅธ json ์คํค๋ง๋ฅผ ํ์ฉํ๋ค.
Database
MongoDB Atlas์์ Database๋ฅผ ์์ฑํ๊ณ , ๊ทธ ์ดํ์ Collection์ ์์ฑํ ์๊ฐ ์๋๋ฐ, Database๋ Collection๋ค์ ๋ฌผ๋ฆฌ์ ์ธ ์ปจํ ์ด๋์ด๋ค.
Usage
Mongo DB Atlas๋ฅผ ๋ค์ด๊ฐ๋ณด๊ณ ๋๋๊ฑด๋ฐ, ์ ๋ง ์ ๋์ด์๋ค.
์ฝ๋ ์์ , ํด๋ฌ์คํฐ ์์ฑ๋ถํฐ ๊ฐ๋ฐ์ ์นํ์ ์ผ๋ก ์ ๋ง๋ค์ด์คฌ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๋ํ Mongo Atlas๋ฅผ ์ด์ฉํด์ AWS์ ์๋ฒ๋ฆฌ์ค ํํ๋ก ๋ฐฐํฌํ๋๋ผ๋ Document DB๋ฅผ ์ฐ๋ ๊ฒ ๋ณด๋ค ์๊ธ์ด ์ผ ๊ฒ ๊ฐ๋ค.
์๋ฒ๋ฆฌ์ค ํํ๋ก AWS์ ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ ์ ์์๊ณ , Go์์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฐ๊ฒฐํ ์ ์๋ค.
๊ฝค๋ ๋จ์ํ๊ฒ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ค. ์์ ์ฝ๋๋ ์ ๋ถ MongoDB Atlas์์ ์ ๊ณตํด์ค ์ฝ๋์ด๋ค.
ServerAPIVersion1์ด๋ผ๋ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ ๋ฒ์ 1์ ์ด๊ฑฐ์ง? ๋ผ๋ ์๊ฐ์ด ๋ค ์ ์์ง๋ง Version1๋ฐ์ ์๊ณ Stable์ด๋ผ๊ณ ํ๋ ์์ฌํ๊ณ ์จ๋ ๋ ๊ฒ ๊ฐ๋ค.
Source
Last updated