[MongoDB] ObjectID
MongoDB๋ ๊ณ ์ ์ Unique ID ์์ฑ ๋งค์ปค๋์ฆ์ ์ฌ์ฉํ๋ค.
์ ์ด๋ถํฐ ๋ถ์ฐํ๊ฒฝ์ ๊ณ ๋ คํ๊ณ ์ค๊ณ๋์๊ธฐ์, RDB๋ค์ด ํํ ์ฌ์ฉํ๋ incremental ๊ฐ์ด ์๋๋ผ ๋๋ค์ผ๋ก ์์ฑ๋๋ uuid๋ฅผ ์ฑํํ๋ค.
ObjectId๋ ์ด 12๋ฐ์ดํธ๋ก ๊ตฌ์ฑ๋๋๋ฐ, ๋น ์๋์ ๊ธฐ์ค์ผ๋ก 4๋ฐ์ดํธ-5๋ฐ์ดํธ-3๋ฐ์ดํธ๋ก 3๊ฐ ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋๋ค.

- ์ฒซ๋ฒ์งธ 4๋ฐ์ดํธ ์์ญ์ ์ด ๋จ์์ ํ์์คํฌํ๋ค.
- ๋๋ฒ์งธ 5๋ฐ์ดํธ ์์ญ์ ๋๋ค๊ฐ์ด๋ค. ํด๋น ๋จธ์ ์์ค์์ ๊ณ ์ ์ฑ์ด ๋ณด์ฅ๋๋ค.
- ์ธ๋ฒ์งธ 3๋ฐ์ดํธ ๊ฐ์ ๋จ์ํ incremental ๊ฐ์ด๋ค.
์ด๋ฌํ ๊ตฌ์กฐ ๋๋ถ์ ๋ถ์ฐ ํ๊ฒฝ์์ ๊ฐ๊ฐ์ ๋
ธ๋๋ค์ด ๋
๋ฆฝ์ ์ผ๋ก id๋ฅผ ์์ฑํ ์ ์๊ณ , ๊ทธ์ ๋์์ ์ฝ๊ฐ์ ์๊ฐ์ ์ ๋ ฌ๋ ๊ฐ๋ฅํ๋ค.
ํ์์คํฌํ๊ฐ ์ด ๋จ์์ด๊ธฐ ๋๋ฌธ์ ๋์จํ๊ฒ๋ ์ ๋ ฌ์ ํ ์ ์๋ค.
์ฌ์ฉ๋ฒ
์ปฌ๋ ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ง์ด๋ฃ์๋ _id๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ObjectId ๊ฐ์ด ๋ถ์ฌ๋๋ค.

ObjectId() ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์์๋ก ์์ฑํ ์๋ ์๊ณ

ํ๋ผ๋ฏธํฐ๋ฅผ ๋๊ธฐ๋ฉด ๋ฌธ์์ด์ ObjectId๋ก ๋ณํํ ์๋ ์๋ค.

๋ฏ์ด๋ณด๊ธฐ
ํ๋ฒ ์ค๋ช
ํ๋๋ก ์์ฑ์ด ๋๋๊ฑด์ง ์ญ๋ถ์์ ํด๋ณด์.
๋ฐฉ๊ธ ๋ด๊ฐ ์์ฑํ ObjectId๋ ์ด๊ฑด๋ฐ
65f71bcb0755d426b448106a
๋ถํดํ๋ฉด ์ด๋ฐ ๊ตฌ์กฐ๊ฐ ๋๋ค.
65f71bcb(ํ์์คํฌํ) 0755d426b4(๋๋ค) 48106a(inc)
๊ทธ๊ฑธ ๊ทธ๋๋ก ์ ์๋ก ๋ณํํด์ ํ์์คํฌํ๋ก ๊ณ์ฐํด๋ณด๋ฉด
๋ฑ ๋ฐฉ๊ธ ์๊ฐ์ด ๋์จ๋ค.
๋๋จธ์ง ์ซ์๋ค๋ ์ด๋ ๊ฒ ์ฐํ๋ค.
inc ๊ฐ์ด ๊ธฐ๋๋๋ก ๋์ํ๋์ง ํ์ธํ๊ธฐ ์ํด์ ๋ฐ๋ก ํ๋ ๋ ๋ง๋ค์ด๋ณด์.

65f71cad 0755d426b4 48106b
์ด๋ฒ์ ์ด๋ ๊ฒ ๋์๋๋ฐ
์ญ์ ๊ธฐ๋ํ๋๋ก 1์ด ์ฆ๊ฐํ ๊ฐ์ด ๋ฐํ๋์๋ค.
์ฐธ์กฐ
https://www.mongodb.com/docs/manual/reference/method/ObjectId/
https://www.mongodb.com/community/forums/t/objectid-guarantees-absolute-insertion-order-if-just-one-replica-set-and-no-sharding-throughout-lifetime/16902/3