findOneAndUpdate
๋ฉ์๋๊ฐ findOneAndUpdate ๋์ findAndModify
๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
ํฌ์ ์ค์ ์ ์ ๋ฌํด์ผ ํ์ง๋ง findAndModifiy
๊ฐ ์ด๋ฌํ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์๋ํ์ง ์๊ณ ์ ์ฒด ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค.
์:
Product
.findOneAndUpdate({
_id: productId,
}, {
$push: {colors: data},
}, {
projection: {
name: 1, 'colors.$': 1,
},
returnNewDocument: true,
})
mongoose์ findOneAndUpdate()
long์ ๊ธฐ๋ณธ mongodb ๋๋ผ์ด๋ฒ์์ findOneAndUpdate()
์ ์กด์ฌ๋ณด๋ค ์์๊ณ ๋๋ผ์ด๋ฒ์ findOneAndUpdate()
๋ ์ด์จ๋ findAndModify
์ฃผ๋ณ์ ์์ ๋ํผ์ด๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ํ ๋๋ผ์ด๋ฒ์ findOneAndUpdate()
์๋ ํนํ new
์ต์
๊ณผ new
์ returnNewDocument
์ ์ฐจ์ด์ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ๊ธฐ๋ฐํ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ด๋ ๋ชฝ๊ตฌ์ค์๊ฒ ๊ณจ์นซ๊ฑฐ๋ฆฌ์
๋๋ค.
ํ๋ก์ ์
์ด ์๋ํ์ง ์๋ ๊ฒ์ ์ฝ๊ฐ์ ๋ฌธ์ ์
๋๋ค. ๊ธฐ๋ณธ findAndModify
ํจ์๊ฐ ์ฌ์ฉํ๋ ์ด๋ฆ์ด๊ธฐ ๋๋ฌธ์ 'ํ๋ก์ ์
' ๋์ 'ํ๋'๋ฅผ ์ฌ์ฉํด ๋ณด์ธ์.
๋ช
ํํ ํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์, fields
๋ projection
๋ฐ new
๋ returnNewDocument
์ ๊ฐ์ด ์ด๋ฆ ์ง์ ์ ์ด์ํ ์ฐจ์ด์ ์ด ์์์ ์์์ต๋๋ค.
์, ๋ชจ๋ API๊ฐ ๊ณ ์ ํ ๋์ก์ด๊ฐ ๋๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ์ ํผ๋์ด ์์ต๋๋ค. :) ์ด์ mongodb ๋๋ผ์ด๋ฒ๊ฐ ๊ณ ์ ํ ๋จ์ ์ด ์๋ findOneAndUpdate()
ํจ์๋ฅผ ์ถ๊ฐํ์ง๋ง ์์ง mongoose์ fineOneAndUpdate( )
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์, ๋ชจ๋ API๊ฐ ๊ณ ์ ํ ๋์ก์ด๊ฐ ๋๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ์ ํผ๋์ด ์์ต๋๋ค. :) ์ด์ mongodb ๋๋ผ์ด๋ฒ๊ฐ ๊ณ ์ ํ ๋จ์ ์ด ์๋
findOneAndUpdate()
ํจ์๋ฅผ ์ถ๊ฐํ์ง๋ง ์์ง mongoose์ fineOneAndUpdate( )