๋ฌธ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
์ด ํ์ด์ง์ ๋ด์ฉ
๊ฐ์
๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋ฆฌ๊ฑฐ ์คํ์๋ ๊ด๋ จ ๋ณ๊ฒฝ ์ด๋ฒคํธ๊ฐ ์์ต๋๋ค. ๋ฌธ์ ์ฌ์ ์ด๋ฏธ์ง ๋ฅผ ํฌํจํ๋๋ก ์ด๋ฌํ ๋ณ๊ฒฝ ์ด๋ฒคํธ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ฌ์ ์ด๋ฏธ์ง๋ ๋ณ๊ฒฝ ์ ์ ๋ฌธ์์ ์ค๋ ์ท์ ๋๋ค.
์์
์ฌ์ ์ด๋ฏธ์ง๊ฐ ์๋ collection์์ updateOne
๋ฅผ ๊ณ ๋ คํฉ๋๋ค.
pets.updateOne( { name: "Fido" }, { $inc: { age: 1 } } )
์ฌ์ ์ด๋ฏธ์ง๋ ์ฐ๊ธฐ ์์ ๋ณ๊ฒฝ ์ด๋ฒคํธ๋ฅผ ์ํด ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
fullDocumentBeforeChange
ํ๋์ ์๋ ๋ฌธ์ ์ฌ์ ์ด๋ฏธ์ง์ฌ์ ์ด๋ฏธ์ง - ๋ณ๊ฒฝ ์ ์ ์ ์ฒด ๋ฌธ์{ "name": "Fido", "age": 3 } fullDocument
ํ๋์ ๋ฌธ์ ํฌ์คํธ์ด๋ฏธ์งPostimage - ๋ณ๊ฒฝ ์งํ์ ์ ์ฒด ๋ฌธ์{ "name": "Fido", "age": 4 }
์ฑ๋ฅ
MongoDB ๋ฒ์ 6.0 ์ด์์ ์คํ ํ๋ ํด๋ฌ์คํฐ์ ๊ฒฝ์ฐ ํธ๋ฆฌ๊ฑฐ๋ ํด๋ฌ์คํฐ ๋ด์ฅ ๋ณ๊ฒฝ ์คํธ๋ฆผ ์ฌ์ ์ด๋ฏธ์ง ๊ธฐ๋ฅ ์ ์ฌ์ฉํฉ๋๋ค. ์ด์ ๋ฒ์ ์ MongoDB ๋ ์ฌ์ ์ด๋ฏธ์ง๋ฅผ oplog ์ ์ง์ ์ ์ฅ ํฉ๋๋ค. ์ด ๋ ๊ฐ์ง ๋ชจ๋ ์ปฌ๋ ์ ์ ๊ฐ ์์ ์ ์ ์ฅ ๋ฐ ์ปดํจํ ์ค๋ฒํค๋ ๋ฅผ ์ถ๊ฐํ๋ฏ๋ก ์ฐ๊ธฐ (write) ์ฒ๋ฆฌ๋ ์ด ๋์ ์ปฌ๋ ์ ์ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ฌธ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง ํ์ฑํ
๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋ฆฌ๊ฑฐ๋ฅผ ๊ตฌ์ฑ ํ ๋ ์ฌ์ ์ด๋ฏธ์ง๋ฅผ ํ์ฑํํ ์ ์์ต๋๋ค. Document Preimage ์ trigger ๊ตฌ์ฑ์ ๋ํ ์ค์ ์ ๋๋ค. ์ปฌ๋ ์ ์ ๋ํ ๋ฌธ์ ์ฌ์ ์ด๋ฏธ์ง๋ฅผ ํ์ฑํํ๋ ค๋ฉด ์ด ์ต์ ์ ํ ๊ธํฉ๋๋ค.
์ฌ์ ์ด๋ฏธ์ง ์ง์ collection ๋ณด๊ธฐ
๋ฌธ์ ์ฌ์ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๋ collection ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ์ธ์:
Linked Data Source ๊ตฌ์ฑ ํ๋ฉด์ผ๋ก ์ด๋ํฉ๋๋ค.
Advanced Configuration ์น์ ์ ํ์ฅํฉ๋๋ค.
์ด ์น์ ์๋ Preimage Preferences by Collection ํ ์ด๋ธ์ด ํฌํจ๋์ด ์์ต๋๋ค.
์ด ํ์๋ oplog์ ์ฌ์ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๋ ๋ชจ๋ collection์ด ๋์ด๋์ด ์์ต๋๋ค. collection์ ๋ํ ์ฌ์ ์ด๋ฏธ์ง ํ์ฑํ๋ ๋ชจ๋ collection์ ์ ์ฉ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค๋ฅธ ์ฑ์ ํธ๋ฆฌ๊ฑฐ์ ์ฐ๊ฒฐ๋ ์ปฌ๋ ์ ์ด ํฌํจ๋ฉ๋๋ค. Atlas Triggers๊ฐ ์๋ collection๋ ์ฌ๊ธฐ์ ํ์๋ฉ๋๋ค.
collection์ ์ฌ์ ์ด๋ฏธ์ง ๋นํ์ฑํ
App Services UI์์ ์ปฌ๋ ์ ์์ค ์ฌ์ ์ด๋ฏธ์ง๋ฅผ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
collection์ ์ฌ์ ์ด๋ฏธ์ง๋ฅผ ๋นํ์ฑํํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
(์ ํ ์ฌํญ) collection์ Atlas Triggers์ ๋ํ ๋ฌธ์ ์ฌ์ ์ด๋ฏธ์ง๋ฅผ ๋นํ์ฑํํฉ๋๋ค. ์ฌ์ ์ด๋ฏธ์ง๊ฐ ์๋ Atlas Triggers๋ ์ฌ์ ์ด๋ฏธ์ง๋ฅผ ๋นํ์ฑํํ ํ์๋ ๊ณ์ ์คํ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ณ๊ฒฝ ์ด๋ฒคํธ์๋
fullDocumentBeforeChange
ํ๋๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ค๋ฅธ App Services ์ฑ์ Atlas Triggers๊ฐ ํฌํจ๋ฉ๋๋ค.collection์ด ๋๊ธฐํ๋ cluster์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ ๋๊ธฐํ๋ฅผ ์ข ๋ฃ ํฉ๋๋ค.
์ปฌ๋ ์ ๋ณ ์ฌ์ ์ด๋ฏธ์ง ๊ธฐ๋ณธ ์ค์ ํ๋ฅผ ํ์ธํฉ๋๋ค. ์ปฌ๋ ์ ์ ๋ณด๋ ค๋ฉด Disable ๋ฒํผ์ ๋๋ฆ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํด๋น ์ปฌ๋ ์ ์ ์ฌ์ ์ด๋ฏธ์ง๊ฐ ๊บผ์ง๋๋ค.
collection์ด ๋๊ธฐํ๋ cluster์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ ๋๊ธฐํ๋ฅผ ๋ค์ ํ์ฑํ ํฉ๋๋ค.
๊ฒฝ๊ณ
๋๊ธฐํ ์ข ๋ฃ ํ ๋๊ธฐํ ๋ณต์ํ๊ธฐ
Atlas Device Sync๋ฅผ ์ข ๋ฃํ๋ค๊ฐ ๋ค์ ํ์ฑํํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ๋ ์ด์ ๋๊ธฐํํ ์ ์์ต๋๋ค. ๋๊ธฐํ๋ฅผ ๋ณต์ํ๋ ค๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ํด๋ผ์ด์ธํธ ์ฌ์ค์ ํธ๋ค๋ฌ๋ฅผ ๊ตฌํํด์ผ ํฉ๋๋ค. ์ด ํธ๋ค๋ฌ๋ ๋๊ธฐํ๋์ง ์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ญ์ ํ๊ฑฐ๋ ๋ณต๊ตฌ๋ฅผ ์๋ํ ์ ์์ต๋๋ค.