create
์ ์
create
์ปฌ๋ ์ ๋๋ ๋ทฐ๋ฅผ ๋ช ์์ ์ผ๋ก ๋ง๋ญ๋๋ค.
์ฐธ๊ณ
์ด ๋ช ๋ น์ผ๋ก ์์ฑ๋ ๋ทฐ๋ ๊ตฌ์ฒดํ๋ ๋ทฐ๋ฅผ ์ฐธ์กฐํ์ง ์์ต๋๋ค. ์จ๋๋งจ๋ ๊ตฌ์ฒดํ๋ ๋ทฐ์ ๋ํ ์ค๋ช ์
$merge
๋ฅผ ์ฐธ์กฐํ์ธ์.
ํธํ์ฑ
์ด ๋ช ๋ น์ ๋ค์ ํ๊ฒฝ์์ ํธ์คํ ๋๋ ๋ฐฐํฌ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
MongoDB Atlas: ํด๋ผ์ฐ๋์์์ MongoDB ๋ฐฐํฌ๋ฅผ ์ํ ์์ ๊ด๋ฆฌํ ์๋น์ค
์ฐธ๊ณ
์ด ๋ช ๋ น์ ๋ชจ๋ MongoDB Atlas ํด๋ฌ์คํฐ์์ ์ง์๋ฉ๋๋ค. ๋ชจ๋ ๋ช ๋ น์ ๋ํ Atlas ์ง์์ ๊ดํด ์์ธํ ์์๋ณด๋ ค๋ฉด ์ง์๋์ง ์๋ ๋ช ๋ น์ ์ฐธ์กฐํ์ญ์์ค.
MongoDB Enterprise: MongoDB์ ๊ตฌ๋ ๊ธฐ๋ฐ ์์ฒด ๊ด๋ฆฌ ๋ฒ์
MongoDB Community: MongoDB์ ์์ค ์ฌ์ฉ ๊ฐ๋ฅ ๋ฌด๋ฃ ์์ฒด ๊ด๋ฆฌ ๋ฒ์
๊ตฌ๋ฌธ
create
๋ช
๋ น์ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ๋ฌธ์ ๊ฐ์ง๋๋ค:
์ฐธ๊ณ
MongoDB 6.3์๋ bucketMaxSpanSeconds
๋ฐ bucketRoundingSeconds
๋งค๊ฐ๋ณ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. 6.3 ์ดํ๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ๋ ค๋ฉด ์ด๋ฌํ ๋งค๊ฐ๋ณ์๊ฐ ์๋ ๋ชจ๋ ์ปฌ๋ ์
์ ์ ๊ฑฐํ๊ฑฐ๋ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ํด๋น granularity
๋ฅผ ์ฌ์ฉํ๋๋ก ์์ ํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ collMod
์ ์ฐธ์กฐํ์ญ์์ค.
{ create: <collection or view name>, capped: <true|false>, timeseries: { timeField: <string>, metaField: <string>, granularity: <string> }, expireAfterSeconds: <number>, autoIndexId: <true|false>, size: <max_size>, max: <max_documents>, storageEngine: <document>, validator: <document>, validationLevel: <string>, validationAction: <string>, indexOptionDefaults: <document>, viewOn: <source>, pipeline: <pipeline>, collation: <document>, writeConcern: <document>, comment: <any> }
๋ช ๋ น ํ๋
create
๋ช
๋ น์๋ ๋ค์๊ณผ ๊ฐ์ ํ๋๊ฐ ์์ต๋๋ค.
ํ๋ | ์ ํ | ์ค๋ช
| ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ๋ฌธ์์ด | ์ ์ปฌ๋ ์ ๋๋ ๋ทฐ์ ์ด๋ฆ์ ๋๋ค. ์ด๋ฆ ์ง์ ์ ํ ์ฌํญ์ ์ฐธ์กฐํ์ธ์. | ||||||||||
| ๋ถ์ธ | ์ ํ ์ฌํญ. ๊ณ ์ ์ฌ์ด์ฆ ์ปฌ๋ ์
์ ์์ฑํ๋ ค๋ฉด | ||||||||||
| ๋ฌธ์์ด | time series ์ปฌ๋ ์
์ ๋ง๋ค ๋ ํ์ํฉ๋๋ค. ๊ฐ time-series ๋ฌธ์์์ ๋ ์ง๋ฅผ ํฌํจํ๋ ํ๋์ ์ด๋ฆ์
๋๋ค. time series ์ปฌ๋ ์
์ ๋ฌธ์์๋ | ||||||||||
| ๋ฌธ์์ด | ์ ํ ์ฌํญ์ ๋๋ค. ๊ฐ time series ๋ฌธ์์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ํ๋์ ์ด๋ฆ์ ๋๋ค. ์ง์ ๋ ํ๋์ ๋ฉํ๋ฐ์ดํฐ๋ ๊ณ ์ ํ ๋ฌธ์ ์๋ฆฌ์ฆ์ ๋ ์ด๋ธ์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ์ฌ์ผ ํฉ๋๋ค. ๋ฉํ๋ฐ์ดํฐ๋ ๊ฑฐ์ ๋ณ๊ฒฝ๋์ง ์์์ผ ํฉ๋๋ค. ์ง์ ํ ํ๋์ ์ด๋ฆ์ด | ||||||||||
| ๋ฌธ์์ด | ์ ํ ์ฌํญ. ๊ฐ๋ฅํ ๊ฐ์ | ||||||||||
| ์ซ์ | ์ ํ ์ฌํญ. ๋ฌธ์๊ฐ ๋ง๋ฃ๋๋ ์๊ฐ(์ด)์ ์ง์ ํ์ฌ time series ์ปฌ๋ ์ ์ ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์ญ์ ํ ์ ์์ต๋๋ค. MongoDB๋ ๋ง๋ฃ๋ ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์ญ์ ํฉ๋๋ค. | ||||||||||
| ๋ถ์ธ | ์ ํ ์ฌํญ. ์ค์MongoDB 4.0๋ถํฐ ๋ฒ์ 3.2๋ถํฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. | ||||||||||
| integer | ์ ํ ์ฌํญ. ๊ณ ์ ์ฌ์ด์ฆ ์ปฌ๋ ์
์ ์ต๋ ํฌ๊ธฐ๋ฅผ ๋ฐ์ดํธ ๋จ์๋ก ์ง์ ํฉ๋๋ค. ๊ณ ์ ์ฌ์ด์ฆ ์ปฌ๋ ์
์ด ์ต๋ ํฌ๊ธฐ์ ๋๋ฌํ๋ฉด MongoDB๋ ์ ๋ฌธ์๋ฅผ ์ํ ๊ณต๊ฐ์ ํ๋ณดํ๊ธฐ ์ํด ์ด์ ๋ฌธ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๊ณ ์ ์ฌ์ด์ฆ ์ปฌ๋ ์
์ ๊ฒฝ์ฐ | ||||||||||
| integer | ์ ํ ์ฌํญ์
๋๋ค. ๊ณ ์ ์ฌ์ด์ฆ ์ปฌ๋ ์
์ ํ์ฉ๋๋ ์ต๋ ๋ฌธ์ ์์
๋๋ค. | ||||||||||
| ๋ฌธ์ | ์ ํ ์ฌํญ. WiredTiger ์คํ ๋ฆฌ์ง ์์ง์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ์ปฌ๋ ์
์ ์์ฑํ ๋ ์ปฌ๋ ์
๋ณ๋ก ์คํ ๋ฆฌ์ง ์์ง์ ๋ํ ๊ตฌ์ฑ์ ์ง์ ํ ์ ์์ต๋๋ค.
collection์ ์์ฑํ ๋ ์ง์ ํ ์คํ ๋ฆฌ์ง ์์ง ๊ตฌ์ฑ์ ๋ค๋ฅธ ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉํ๋ ๋ฉค๋ฒ๊ฐ ์๋ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ง์ํ๊ธฐ ์ํด ๋ณต์ ์ค์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๊ณ oplog์ ๊ธฐ๋กํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์คํ ๋ฆฌ์ง ์์ง ์ต์ ์ง์ ์ ์ฐธ์กฐํ์ธ์. | ||||||||||
| ๋ฌธ์ | ์ ํ ์ฌํญ. ์ฌ์ฉ์๊ฐ collection์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฌ ๊ท์น์ด๋ ํํ์ ์ ์ง์ ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์คํค๋ง ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ฐธ์กฐํ์ธ์. ๋ฒ์ 3.2์ ์๋ก ์ถ๊ฐ๋์์ต๋๋ค.
| ||||||||||
| ๋ฌธ์์ด | ์ ํ ์ฌํญ์ ๋๋ค. ์ ๋ฐ์ดํธ ์ค์ MongoDB๊ฐ ๊ธฐ์กด ๋ฌธ์์ ์ ํจ์ฑ ๊ฒ์ฌ ๊ท์น์ ์ผ๋ง๋ ์๊ฒฉํ๊ฒ ์ ์ฉํ๋์ง ๊ฒฐ์ ํฉ๋๋ค. ๋ฒ์ 3.2์ ์๋ก ์ถ๊ฐ๋์์ต๋๋ค.
| ||||||||||
| ๋ฌธ์์ด | ์ ํ ์ฌํญ. ์ ํจํ์ง ์์ ๋ฌธ์๋ฅผ ๋ฌธ์ ์ ํจ์ฑ ๊ฒ์ฌ๋
| ||||||||||
| ๋ฌธ์ | ์ ํ ์ฌํญ. ์ฌ์ฉ์๊ฐ ์ปฌ๋ ์ ์ ์์ฑํ ๋ ์ธ๋ฑ์ค์ ๋ํ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ์ง์ ํ ์ ์์ต๋๋ค.
์ธ๋ฑ์ค๋ฅผ ๋ง๋ค ๋ ์ง์ ํ ์คํ ๋ฆฌ์ง ์์ง ๊ตฌ์ฑ์ ๋ค๋ฅธ ์คํ ๋ฆฌ์ง ์์ง์ ์ฌ์ฉํ๋ ๋ฉค๋ฒ๊ฐ ์๋ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ง์ํ๊ธฐ ์ํด ๋ณต์ ์ค์ ์ ํจ์ฑ์ด ๊ฒ์ฌ๋๊ณ oplog์ ๊ธฐ๋ก๋ฉ๋๋ค. ๋ฒ์ 3.2์ ์๋ก ์ถ๊ฐ๋์์ต๋๋ค. | ||||||||||
| ๋ฌธ์์ด | ๋ทฐ๋ฅผ ์์ฑํ ์์ค ์ปฌ๋ ์ ๋๋ ๋ทฐ์ ์ด๋ฆ์ ๋๋ค. ์ด ์ด๋ฆ์ ์ปฌ๋ ์ ๋๋ ๋ทฐ์ ์ ์ฒด ๋ค์์คํ์ด์ค๊ฐ ์๋๋ฉฐ, ์ฆ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ํฌํจํ์ง ์๊ณ ๋ง๋ค๋ ค๋ ๋ทฐ์ ๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ฏธํฉ๋๋ค. ์์ค ์ปฌ๋ ์ ๊ณผ ๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ทฐ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
๋ฒ์ 3.4์ ์๋ก ์ถ๊ฐ๋์์ต๋๋ค. | ||||||||||
| ๋ฐฐ์ด | ์ง๊ณ ํ์ดํ๋ผ์ธ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ ๋ฐฐ์ด์
๋๋ค. ๋ทฐ ์ ์ ๋ทฐ ์ ์๋ ๊ณต๊ฐ์
๋๋ค. ์ฆ, ๋ทฐ์ ๋ํ
| ||||||||||
| ์ปฌ๋ ์ ๋๋ ๋ทฐ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ง์ ํฉ๋๋ค. ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ฌ์ฉํ๋ฉด ๋์๋ฌธ์ ๋ฐ ์ ์ผํธ ํ์ ๊ท์น๊ณผ ๊ฐ์ ๋ฌธ์์ด ๋น๊ต์ ๋ํ ์ธ์ด๋ณ ๊ท์น์ ์ง์ ํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ์ ๋ ฌ ์ต์ ์ ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
๋ฐ์ดํฐ ์ ๋ ฌ์ ์ง์ ํ ๋ ์ปฌ๋ ์ ์์ค์์ ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ง์ ํ๋ ๊ฒฝ์ฐ:
์ปฌ๋ ์ ๋๋ ์ฐ์ฐ์ ๋ํ ๋ฐ์ดํฐ ์ ๋ ฌ์ด ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ, MongoDB๋ ์ด์ ๋ฒ์ ์์ ๋ฌธ์์ด ๋น๊ต์ ์ฌ์ฉ๋ ๊ฐ๋จํ ์ด์ง ๋น๊ต๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ทฐ์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ์ ๋ ฌ์ด ์ง์ ๋์ง ์์์ผ๋ฉด ๋ทฐ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ๋ ฌ์ "simple" ์ด์ง ๋น๊ต ๋ฐ์ดํฐ ์ ๋ ฌ๊ธฐ์ ๋๋ค. ์ปฌ๋ ์ ์ ๋ํ ๋ทฐ์ ๊ฒฝ์ฐ, ๋ทฐ๋ ์ปฌ๋ ์ ์ ๋ฐ์ดํฐ ์ ๋ ฌ ์ค์ ์ ์์ํ์ง ์์ต๋๋ค. ๋ค๋ฅธ ๋ทฐ์ ๋ํ ๋ทฐ์ ๊ฒฝ์ฐ ๋ง๋ค๋ ค๋ ๋ทฐ์ ๋์ผํ ๋ฐ์ดํฐ ์ ๋ ฌ ์ค์ ์ ์ง์ ํด์ผ ํฉ๋๋ค. ์ปฌ๋ ์ ๋๋ ๋ทฐ๋ฅผ ๋ง๋ ํ์๋ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ปฌ๋ ์ ์์ฑ ์ ๊ธฐ๋ณธ๊ฐ ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ง์ ํ๋ ์์ ๋ ๋ฐ์ดํฐ ์ ๋ ฌ ์ง์ ์ ์ฐธ์กฐํ์ธ์. ๋ฒ์ 3.4์ ์๋ก ์ถ๊ฐ๋์์ต๋๋ค. | |||||||||||
| ๋ฌธ์ | ์ ํ ์ฌํญ์ ๋๋ค. ์์ ์ ๋ํ ์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ํํํ๋ ๋ฌธ์์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ ์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์๋ตํฉ๋๋ค.
| ||||||||||
| any | ์ ํ ์ฌํญ. ์ด ๋ช ๋ น์ ์ฒจ๋ถํ ์ฌ์ฉ์ ์ ๊ณต ์ฝ๋ฉํธ์ ๋๋ค. ์ค์ ๋๋ฉด ์ด ์ค๋ช ์ ๋ค์ ์์น์์ ์ด ๋ช ๋ น์ ๋ ์ฝ๋์ ํจ๊ป ํ์๋ฉ๋๋ค.
๋๊ธ์ ์ ํจํ ๋ชจ๋ BSON types (๋ฌธ์์ด, ์ ์, ๊ฐ์ฒด, ๋ฐฐ์ด ๋ฑ)์ด ๋ ์ ์์ต๋๋ค. ๋ฒ์ 4.4์ ์ถ๊ฐ๋์์ต๋๋ค. |
db.createCollection()
๋ฉ์๋์ db.createView()
๋ฉ์๋๋ create
๋ช
๋ น์ ๋ํํฉ๋๋ค.
ํ๋
๋ฆฌ์์ค ์ ๊ธ
๋ฒ์ 4.2์์ ๋ณ๊ฒฝ๋์์ต๋๋ค.
create
์ ์์
๊ธฐ๊ฐ์ ์ง์ ๋ ์ปฌ๋ ์
๋๋ ๋ทฐ์ ๋ํ ๋ฐฐํ์ ์ ๊ธ์ ์ป์ต๋๋ค. ์ปฌ๋ ์
์ ์ด๋ฃจ์ด์ง ๋ชจ๋ ํ์ ์์
์ ๋ฐ๋์ create
์ด ์ ๊ธ์ ํด์ ํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. create
์ ์ผ๋ฐ์ ์ผ๋ก ์ด ์ ๊ธ์ ์งง์ ์๊ฐ ๋์ ์ ์งํฉ๋๋ค.
๋ทฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ system.views
์ปฌ๋ ์
์ ๋ํ ์ถ๊ฐ ๋ฐฐํ ๋ฝ์ ์ป์ด์ผ ํฉ๋๋ค. ์ด ์ ๊ธ์ ๋ช
๋ น์ด ์๋ฃ๋ ๋๊น์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ทฐ ์์ฑ ๋๋ ์์ ์ ์ฐจ๋จํฉ๋๋ค.
MongoDB 4.2 ์ด์ ๋ฒ์ ์์๋ create
๊ฐ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๋ฐฐํ์ ์ ๊ธ์ ํ๋ํ์ฌ ์์
์ด ์๋ฃ๋ ๋๊น์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๋ชจ๋ ํด๋น ์ปฌ๋ ์
์ ๋ํ ๋ชจ๋ ์์
์ ์ฐจ๋จํ์ต๋๋ค.
ํธ๋์ญ์
๋ฒ์ 4.4์์ ๋ณ๊ฒฝ๋์์ต๋๋ค.
ํธ๋์ญ์ ์ด ๊ต์ฐจ ์ค๋ ์ฐ๊ธฐ ํธ๋์ญ์ (write transaction)์ด ์๋ ๊ฒฝ์ฐ ๋ถ์ฐ ํธ๋์ญ์ ๋ด์์ ์ปฌ๋ ์ ๊ณผ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
ํธ๋์ญ์
์์ create
๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํธ๋์ญ์
์์ ์ฝ๊ธฐ ๊ณ ๋ ค "local"
๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. "local"
์ด์ธ์ ์ฝ๊ธฐ ๊ณ ๋ ค ์์ค์ ์ง์ ํ๋ฉด ํธ๋์ญ์
์ด ์คํจํฉ๋๋ค.
Stable API
๋ฒ์ 5.0์์ ๋ณ๊ฒฝ๋จ
stable API V1๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ create
๋ช
๋ น์ ๋ค์ ํ๋๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
autoIndexId
capped
indexOptionDefaults
max
size
storageEngine
์ก์ธ์ค ์ ์ด
๋ฐฐํฌ์๋ฒ์์ ์ธ์ฆ/๊ถํ ๋ถ์ฌ๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ create
์ ๋ค์ ๊ถํ์ด ํ์ํฉ๋๋ค.
์์
| ํ์ ๊ถํ |
---|---|
๋น๊ณ ์ ์ฌ์ด์ฆ ์ปฌ๋ ์ ์์ฑํ๊ธฐ | ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฑํ ์ปฌ๋ ์
์ ๋ํ |
๊ณ ์ ์ฌ์ด์ฆ ์ปฌ๋ ์ ์์ฑ | ์ปฌ๋ ์
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ |
๋ทฐ ๋ง๋ค๊ธฐ | ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๊ทธ๋ฌ๋ ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค |
์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด readWrite
๊ธฐ๋ณธ ์ ๊ณต ์ญํ ์ด ์๋ ์ฌ์ฉ์์๊ฒ๋ ๋์ด๋ ์ฐ์ฐ์ ์คํํ๋ ๋ฐ ํ์ํ ๊ถํ์ด ์์ต๋๋ค. ํ์ํ ์ญํ ์ด ์๋ ์ฌ์ฉ์ ์์ฑ์ ์คํํ๊ฑฐ๋ ๊ธฐ์กด ์ฌ์ฉ์์๊ฒ ์ญํ ํ์ฉ์ ์คํํ์ธ์.
์์
๊ณ ์ ์ฌ์ด์ฆ ์ปฌ๋ ์ ์์ฑ
64ํฌ๋ก๋ฐ์ดํธ๋ก ์ ํ๋ ๊ณ ์ ์ฌ์ด์ฆ ์ปฌ๋ ์ ์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ํ์์ ๋ช ๋ น์ ์คํํ์ธ์.
db.runCommand( { create: "collection", capped: true, size: 64 * 1024 } )
Time Series ์ปฌ๋ ์ ๋ง๋ค๊ธฐ
์ง๋ 24์๊ฐ ๋์์ ๋ ์จ ๋ฐ์ดํฐ๋ฅผ ์บก์ฒํ๋ time series ์ปฌ๋ ์ ์ ์์ฑํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค.
db.createCollection( "weather24h", { timeseries: { timeField: "timestamp", metaField: "data", granularity: "hours" }, expireAfterSeconds: 86400 } )
์ฐธ๊ณ
์ด ์์์์๋ expireAfterSeconds
๋ฅผ 86400
์ผ๋ก ์ง์ ํ๋๋ฐ, ์ด๋ ๋ฌธ์๊ฐ timestamp
๊ฐ ์ดํ 86400
์ด ํ์ ๋ง๋ฃ๋๋ค๋ ์๋ฏธ์
๋๋ค. Time Series Collections (TTL) ์๋ ์ ๊ฑฐ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
๋ทฐ ๋ง๋ค๊ธฐ
์ฐธ๊ณ
์ด ๋ช
๋ น์ผ๋ก ์์ฑ๋ ๋ทฐ๋ ๊ตฌ์ฒดํ๋ ๋ทฐ๋ฅผ ์ฐธ์กฐํ์ง ์์ต๋๋ค. ์จ๋๋งจ๋ ๊ตฌ์ฒดํ๋ ๋ทฐ์ ๋ํ ์ค๋ช
์ $merge
๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฒ์ 4.2์์ ๋ณ๊ฒฝ๋์์ต๋๋ค.
๋ทฐ ์ ์ pipeline
์๋ $out
๋๋ $merge
๋จ๊ณ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ๋ทฐ ์ ์์ ์ค์ฒฉ๋ ํ์ดํ๋ผ์ธ์ด ํฌํจ๋ ๊ฒฝ์ฐ(์: ๋ทฐ ์ ์์ $lookup
๋๋ $facet
๋จ๊ณ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ) ์ด ์ ํ์ ์ค์ฒฉ๋ ํ์ดํ๋ผ์ธ์๋ ์ ์ฉ๋ฉ๋๋ค.
๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๋ทฐ create
๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํฉ๋๋ค.
db.runCommand( { create: <view>, viewOn: <source>, pipeline: <pipeline> } )
๋๋ ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ง์ ํ๋ ๊ฒฝ์ฐ:
db.runCommand( { create: <view>, viewOn: <source>, pipeline: <pipeline>, collation: <collation> } )
์๋ฅผ ๋ค์ด, ๋ค์ ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ survey
์ปฌ๋ ์
์ ๋ง๋ญ๋๋ค.
db.survey.insertMany( [ { _id: 1, empNumber: "abc123", feedback: { management: 3, environment: 3 }, department: "A" }, { _id: 2, empNumber: "xyz987", feedback: { management: 2, environment: 3 }, department: "B" }, { _id: 3, empNumber: "ijk555", feedback: { management: 3, environment: 4 }, department: "A" } ] )
๋ค์ ์์
์ _id
, feedback.management
๋ฐ department
ํ๋๊ฐ ์๋ managementRatings
๋ทฐ๋ฅผ ๋ง๋ญ๋๋ค:
db.runCommand ( { create: "managementFeedback", viewOn: "survey", pipeline: [ { $project: { "management": "$feedback.management", department: 1 } } ] } )
์ค์
๋ทฐ ์ ์๋ ๊ณต๊ฐ์
๋๋ค. ์ฆ, ๋ทฐ์ ๋ํ db.getCollectionInfos()
๋ฐ explain
์์
์๋ ๋ทฐ๋ฅผ ์ ์ํ๋ ํ์ดํ๋ผ์ธ์ด ํฌํจ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ทฐ ์ ์์ ๋ฏผ๊ฐํ ํ๋์ ๊ฐ์ ์ง์ ์ฐธ์กฐํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฐ์ดํฐ ์ ๋ ฌ ์ง์
๋ฐ์ดํฐ ์ ๋ ฌ์ collection ๋๋ ๋ณด๊ธฐ ์์ค์์ ์ง์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ ์ฐ์ฐ์ collection์ ๋ํ ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ง์ ํ์ฌ collection์ ๋ง๋ญ๋๋ค(๋ฐ์ดํฐ ์ ๋ ฌ ํ๋์ ๋ํ ์ค๋ช ์ ๋ฐ์ดํฐ ์ ๋ ฌ ๋ฌธ์ ์ฐธ์กฐ).
db.runCommand ( { create: "myColl", collation: { locale: "fr" } });
์ด ๋ฐ์ดํฐ ์ ๋ ฌ์ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ ๋ ฌ์ ๋ช
์์ ์ผ๋ก ์ง์ ํ์ง ์๋ ํ ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ง์ํ๋ ์ธ๋ฑ์ค ๋ฐ ์์
์์ ์ฌ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด myColl
์ ๋ค์ ๋ฌธ์๋ฅผ ์ฝ์
ํฉ๋๋ค.
{ _id: 1, category: "cafรฉ" } { _id: 2, category: "cafe" } { _id: 3, category: "cafE" }
๋ค์ ์์ ์ ์ปฌ๋ ์ ์ ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ฌ์ฉํฉ๋๋ค.
db.myColl.find().sort( { category: 1 } )
์ด ์์ ์ ๋ค์ ์์๋ก ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค.
{ "_id" : 2, "category" : "cafe" } { "_id" : 3, "category" : "cafE" } { "_id" : 1, "category" : "cafรฉ" }
๋จ์ ์ด์ง ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ฌ์ฉํ๋ collection์ ๋ํ ๋์ผํ ์์ (์ฆ, ํน์ ๋ฐ์ดํฐ ์ ๋ ฌ ์ธํธ ์์)์ ๋ค์ ์์๋ก ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค.
{ "_id" : 3, "category" : "cafE" } { "_id" : 2, "category" : "cafe" } { "_id" : 1, "category" : "cafรฉ" }
ํ
๋ค์๋ ์ฐธ์กฐํ์ธ์.
์คํ ๋ฆฌ์ง ์์ง ์ต์ ์ง์ ํ๊ธฐ
db.createCollection()
์(๋ฅผ) ์ฌ์ฉํ์ฌ ์ปฌ๋ ์
์ ์์ฑํ ๋ ์ปฌ๋ ์
๋ณ ์คํ ๋ฆฌ์ง ์์ง ๊ตฌ์ฑ ์ต์
์ ์ง์ ํ ์ ์์ต๋๋ค. ๋ค์ ์์
์ ๊ณ ๋ คํ์ธ์:
db.runCommand( { create: "users", storageEngine: { wiredTiger: { configString: "<option>=<setting>" } } } )
์ด ์์
์ MongoDB๊ฐ wiredTiger
์คํ ๋ฆฌ์ง ์์ง์ ์ ๋ฌํ ํน์ ๊ตฌ์ฑ ๋ฌธ์์ด์ ์ฌ์ฉํ์ฌ users
๋ผ๋ ์ ์ปฌ๋ ์
์ ์์ฑํฉ๋๋ค. ํน์ wiredTiger
์ต์
์ ๋ํด์๋ ์ปฌ๋ ์
์์ค ์ต์
์ ๋ํ WiredTiger ์ค๋ช
์๋ฅผ ์ฐธ์กฐํ์ธ์.