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