[Sequelize] ํƒ์ƒ‰

[์›๋ณธ ๋งํฌ]

๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ, ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉํ•  ๋ชจ๋ธ ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

DB์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ํƒ์ƒ‰์€ ๋ชจ๋ธ ํด๋ž˜์Šค์˜ find ๋ฉ”์„œ๋“œ๋“ค์„ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ €์žฅ๋œ ๋ชฉ๋ก์„ ์ „๋ถ€ ๋‹ค ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด, findAll ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
ํ•ด๋‹น ๋ชจ๋ธ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด๋กœ ํ†ต์งธ๋กœ ๋ฌถ์–ด์„œ Promise๋ฅผ ํ†ตํ•ด ๋ณด๋‚ด์ค€๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ชจ๋ธ ๊ฐ์ฒด์—์„œ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ’์„ ๊บผ๋‚ด์˜ค๋ ค๋ฉด dataValues ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๊ฑฐ๊ธฐ ๋“ค์–ด์žˆ๋‹ค.
๊ทธ๋ž˜์„œ ๋ฌด์ž‘์ • ๋‹ค ์ฝ์–ด์„œ ์ฝ˜์†”๋กœ ๋ฟŒ๋ฆฌ๋ ค๋ฉด ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿผ ์ž˜ ์ถœ๋ ฅํ•ด์ค„ ๊ฒƒ์ด๋‹ค,



๊ฒ€์ƒ‰์กฐ๊ฑด๋ถ€์—ฌ

๊ทผ๋ฐ ๋ฌด์ž‘์ • ๋‹ค ๊ฐ€์ ธ์˜ฌ๊ฒŒ ์•„๋‹ˆ๋ผ ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ์„ ๋ณ„ํ•ด์„œ ๊ฐ€์ ธ์™€์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ๋” ๋งŽ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿด ๋•Œ๋Š” ๋ฉ”์„œ๋“œ์˜ ์ด์ธ์ž๋กœ ๊ฐ์ฒด๋ฅผ, ๊ทธ ์•ˆ์— where ์†์„ฑ์œผ๋กœ ์กฐ๊ฑด์ ˆ์„ ๋ถ€์—ฌํ•˜๋ฉด ๋œ๋‹ค.
๋งŒ์•ฝ id๊ฐ€ 3์ธ ๋…€์„๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ๋‹ค.

์ด์™ธ์—๋„ ๋” ๋งŽ๊ณ  ๋ณต์žกํ•œ ํ‘œํ˜„๋ฒ•์ด ์žˆ๋Š”๋ฐ. ๊ทธ๊ฑด ๋ณ„๋„ ํฌ์ŠคํŠธ์—์„œ ์ •๋ฆฌํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.



๋‹จ์ผํƒ์ƒ‰

์œ„์—์„œ ์‚ฌ์šฉํ•œ findAll์€ ๋ณต์ˆ˜์˜ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๋Š” ์šฉ๋„๋ผ, ์ „๋ถ€ ๋ฐฐ์—ด๋กœ ๊ฐ์‹ธ์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๊ทธ๋ž˜์„œ ๋‹จ์ผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ๋Š” ์ ์ ˆ์น˜ ๋ชปํ•˜๋‹ค. ๊ทธ๋Ÿด ๋•Œ๋Š” findOne์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฒฐ๊ณผ๊ฐ’์€ Promise๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ์กฐ๊ฑด์ ˆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋œ๋‹ค.

๊ทธ๋ž˜์„œ ๋Œ€๋žต ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์กฐ๊ฑด์— ๋งž๋Š”๊ฒŒ ์—†๋‹ค๋ฉด null๋งŒ์ด ์ „๋‹ฌ๋œ๋‹ค.

์ด์™ธ์—๋„ find ๋ฉ”์„œ๋“œ๋“ค์€ findByPk, findAndCountAll, findCreatefind ๋“ฑ๋“ฑ ๋งŽ์ง€๋งŒ ์ด ๋‘˜์˜ ๋ณ€ํ˜• ๋ฐ ํ™•์žฅ์ผ ๋ฟ์ด๋‹ค.
์ž์„ธํ•œ๊ฒƒ์€ ์•„๋ž˜์˜ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค.


์ฐธ์กฐ
https://sequelize.org/master/class/lib/model.js~Model.html