๐Ÿ”ฅ TIL - Day 31

Kim Dae Hyunยท2021๋…„ 10์›” 18์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
36/93

๐Ÿ“Œ 2์ฐจ ํ”„๋กœ์ ํŠธ ๋งˆ์ง€๋ง‰ ๋‚ 

์ฃผ์š” ๊ธฐ๋Šฅ ๊ตฌํ˜„์€ ๋๋‚ฌ๊ณ  ์ด์ œ ์ถ”๊ฐ€๋กœ ๊ตฌํ˜„ ์ค‘์ธ ๋งˆ์ดํŽ˜์ด์ง€๋งŒ ๋‚จ์•˜๋‹ค.
๋งˆ์ดํŽ˜์ด์ง€์—์„œ๋Š” ๋‚ด๊ฐ€ ๋ณธ ๋ฒ•์•ˆ, ์ข‹์•„์š”ํ•œ ๋ฒ•์•ˆ, ์ฒญ์›ํ•œ ๋ฒ•์•ˆ ๋“ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

mongoDB์— ๊ฝค๋‚˜ ์ต์ˆ™ํ•ด์ ธ์„œ API ๊ตฌํ˜„์€ ๊ธˆ๋ฐฉ ๋๋‚ฌ๋‹ค.

์ผ๋‹จ ์‚ฌ์šฉ์ž DB๊ฐ€ ์œ„ 3๊ฐœ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.
documents ์„ค๊ณ„๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํ–ˆ๋‹ค.

{
  user_id: 'user_id',
  name: 'name',
  like_laws: [  // ์ข‹์•„์š” ํ•œ ๋ฒ•์•ˆ
    {
      like_law_id: 'id',
      title: 'title',
      date: 'date',
      ...
    }    
  ],
  wish_laws: [], // ์ฒญ์›ํ•œ ๋ฒ•์•ˆ
  current_laws: [], // ๋‚ด๊ฐ€ ๋ณธ ๋ฒ•์•ˆ
  ...
}

์ง„์งœ mongoDB ๋งŒ๋งŒ์„ธ๋‹ค

RDBMS๋กœ ์Šคํ‚ค๋งˆ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค ํ–ˆ๋‹ค๋ฉด.. ๋”์ฐํ•˜๋‹ค


์ด์ œ ๋ฝ€์ธํŠธ๋Š” ์–ด๋–ป๊ฒŒ ์ € ๊ตฌ์กฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ  ๋นผ๋Š๋ƒ์ด๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋นผ๋Š” ๊ฒƒ ๋จผ์ € ํ•ด๊ฒฐํ–ˆ๋‹ค.
update์˜ $pull์„ ์ด์šฉํ•ด์„œ ๋ฆฌ์ŠคํŠธ์—์„œ ๊ฐ’์„ ๋นผ๋„๋ก ํ–ˆ๋‹ค.

์ ์  ์ต์ˆ™ํ•ด์ง€๋Š” NoSQL์˜ ๋ง›์— ๋น ์ ธ์„œ ๋‹ค์Œ๋‹ฌ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  Spring์—์„œ ๊ฒฝํ—˜ํ•  RDBMS๊ฐ€ ๋ฒŒ์จ ํ•˜๊ธฐ ์‹ซ์–ด์ง„๋‹ค..

db.users.update(
  {'user_id':user['user_id']},
    {'$pull':
      {'like_laws':
        {'like_law_id': id_receive, 'title': title_receive}
      }
   }
)

๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ๋„ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค.
๋„ฃ๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๊ตฌ์„ฑํ•˜๊ณ  $push๋ฅผ ์ด์šฉํ•ด์„œ ๋ฆฌ์ŠคํŠธ์— ์‚ฝ์ž…ํ•œ๋‹ค.

now = datetime.datetime.now().strftime("%Y-%M-%D %h:%m:s")
doc = {
  'hate_law_id': id_receive,
  'title': title_receive,
  'date': now
}

db.users.update(
  {'user_id': user['user_id']},
  {'$push':
    {'hate_laws': doc}
  }
)

++ ๋งˆ์ดํŽ˜์ด์ง€ ๋งˆ๋ฌด๋ฆฌ .. ํ”„๋กœ์ ํŠธ ๋งˆ๋ฌด๋ฆฌ .. ๋ฐœํ‘œ ์ค€๋น„ ..

profile
์ข€ ๋” ์ฒœ์ฒœํžˆ ๊นŒ๋จน๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๐Ÿง

0๊ฐœ์˜ ๋Œ“๊ธ€