์ฃผ์ ๊ธฐ๋ฅ ๊ตฌํ์ ๋๋ฌ๊ณ ์ด์ ์ถ๊ฐ๋ก ๊ตฌํ ์ค์ธ ๋ง์ดํ์ด์ง๋ง ๋จ์๋ค.
๋ง์ดํ์ด์ง์์๋ ๋ด๊ฐ ๋ณธ ๋ฒ์, ์ข์์ํ ๋ฒ์, ์ฒญ์ํ ๋ฒ์ ๋ฑ์ ํ์ธํ ์ ์๋ค.
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}
}
)
++ ๋ง์ดํ์ด์ง ๋ง๋ฌด๋ฆฌ .. ํ๋ก์ ํธ ๋ง๋ฌด๋ฆฌ .. ๋ฐํ ์ค๋น ..