ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs Menu

ObjectId()

ObjectId(<value>)

์ค‘์š”

Mongo์‰ฌ ๋ฐฉ๋ฒ•

์ด ํŽ˜์ด์ง€์—์„œ๋Š” mongosh ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Node.js์™€ ๊ฐ™์€ ์–ธ์–ด๋ณ„ ๋“œ๋ผ์ด๋ฒ„์— ๋Œ€ํ•œ ์„ค๋ช…์„œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

MongoDB API ๋“œ๋ผ์ด๋ฒ„์˜ ๊ฒฝ์šฐ ์–ธ์–ด๋ณ„ MongoDB ๋“œ๋ผ์ด๋ฒ„ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ƒˆ ObjectId๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. 12๋ฐ”์ดํŠธ ObjectId๋Š” ๋‹ค์Œ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • Unix epoch ์ดํ›„ ์ดˆ ๋‹จ์œ„๋กœ ์ธก์ •๋œ ObjectId ์ƒ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” 4๋ฐ”์ดํŠธ ํƒ€์ž„์Šคํƒฌํ”„์ž…๋‹ˆ๋‹ค.

  • ํ”„๋กœ์„ธ์Šค๋‹น ํ•œ ๋ฒˆ์”ฉ ์ƒ์„ฑ๋˜๋Š” ์ž„์˜์˜ 5๋ฐ”์ดํŠธ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ์ž„์˜์˜ ๊ฐ’์€ ๋จธ์‹ ๊ณผ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๊ณ ์œ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜๋Š” 3๋ฐ”์ดํŠธ ์ฆ๋ถ„ ์นด์šดํ„ฐ์ž…๋‹ˆ๋‹ค.

ํƒ€์ž„์Šคํƒฌํ”„ ๋ฐ ์นด์šดํ„ฐ ๊ฐ’์˜ ๊ฒฝ์šฐ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฐ”์ดํŠธ๊ฐ€ ๋ฐ”์ดํŠธ ์‹œํ€€์Šค (๋น… ์—”๋””์•ˆ) ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ตœํ•˜์œ„ ๋ฐ”์ดํŠธ๊ฐ€ ๋จผ์ € ๋‚˜ํƒ€๋‚˜๋Š”(๋ฆฌํ‹€ ์—”๋””์•ˆ) ๋‹ค๋ฅธ BSON ๊ฐ’๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

ObjectId๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์ •์ˆ˜ ๊ฐ’์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ์ •์ˆ˜๊ฐ€ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ™˜๊ฒฝ์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” ๋ฐฐํฌ์— ObjectId() ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • MongoDB Atlas: ํด๋ผ์šฐ๋“œ์—์„œ์˜ MongoDB ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์™„์ „ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค

  • MongoDB Enterprise: MongoDB์˜ ๊ตฌ๋… ๊ธฐ๋ฐ˜ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

  • MongoDB Community: MongoDB์˜ ์†Œ์Šค ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฌด๋ฃŒ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

ObjectId() ๋Š” ๋‹ค์Œ ์ž…๋ ฅ ์ค‘ ํ•˜๋‚˜๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…๋ ฅ ์œ ํ˜•
์„ค๋ช…

hexadecimal

์„ ํƒ ์‚ฌํ•ญ. ์ƒˆ ObjectId ์˜ 24์ž 16์ง„์ˆ˜ ๋ฌธ์ž์—ด ๊ฐ’์ž…๋‹ˆ๋‹ค.

integer

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ดˆ ๋‹จ์œ„์˜ ์ •์ˆ˜ ๊ฐ’์ด ์œ ๋‹‰์Šค ์‹œ๊ฐ„์— ์ถ”๊ฐ€๋˜์–ด ์ƒˆ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ObjectId() ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ•
์„ค๋ช…

๊ฐ์ฒด์˜ ํƒ€์ž„์Šคํƒฌํ”„ ๋ถ€๋ถ„์„ ๋‚ ์งœ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ObjectId๋ฅผ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

MongoDB 5.0๋ถ€ํ„ฐ๋Š” mongosh๊ฐ€ ๋ ˆ๊ฑฐ์‹œ mongo ์…ธ์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ObjectId() ๋ฉ”์„œ๋“œ๋Š” mongosh์—์„œ ๋ ˆ๊ฑฐ์‹œ mongo ์…ธ๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ๊ฑฐ์‹œ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ ˆ๊ฑฐ์‹œ Mongo ์…ธ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ƒˆ ObjectId๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์ธ์ˆ˜ ์—†์ด ObjectId()๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

newObjectId = ObjectId()

์ด ์˜ˆ์—์„œ newObjectId์˜ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ObjectId("507f1f77bcf86cd799439011")

ObjectId๋ฅผ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋ ค๋ฉด toString() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ObjectId("507f191e810c19729de860ea").toString()

์ด ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์Œ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

507f191e810c19729de860ea

์‚ฌ์šฉ์ž ์ง€์ • Date๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ObjectId๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1

๋‚ด๋ถ€์ ์œผ๋กœ Date ๊ฐ์ฒด๋Š” ์œ ๋‹‰์Šค ์‹œ๊ฐ„ ์ดํ›„์˜ ๋ฐ€๋ฆฌ์ดˆ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€ํ˜ธ ์žˆ๋Š” 64๋น„ํŠธ ์ •์ˆ˜๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Date() ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

myDate = new Date( "2024-01-01" )
2
timestamp = Math.floor( myDate / 1000 )
3

ObjectId.getTimestamp()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Date๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

newObjectId = ObjectId(timestamp)
ObjectId("6592008029c8c3e4dc76256c")

ObjectId ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ์กฐ์ •ํ•˜๋ ค๋ฉด ์ •์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ObjectId๋ฅผ ์ƒ์„ฑํ•˜์„ธ์š”.

newObjectId = ObjectId(32)

ObjectId ๊ฐ’์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ObjectId("00000020f51bb4362eee2a4d")

์˜ˆ์‹œ ObjectId๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • 4๋ฐ”์ดํŠธ ํƒ€์ž„์Šคํƒฌํ”„, 00000020

  • 5๋ฐ”์ดํŠธ ๋žœ๋ค ์š”์†Œ, f51bb4362e

  • 3๋ฐ”์ดํŠธ ์นด์šดํ„ฐ, ee2a4d

ObjectId์˜ ์ฒ˜์Œ 4๋ฐ”์ดํŠธ๋Š” ์œ ๋‹‰์Šค ์‹œ๊ฐ„ ์ดํ›„์˜ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ ObjectId ํƒ€์ž„์Šคํƒฌํ”„๋Š” 00000020์ด๋ฉฐ 16์ง„์ˆ˜๋กœ๋Š” 32์ž…๋‹ˆ๋‹ค.

16์ง„์ˆ˜ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ObjectId๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด ObjectId()๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๊ณ ์œ ํ•œ 24์ž 16์ง„์ˆ˜ ๊ฐ’์„ ์ „๋‹ฌํ•˜์„ธ์š”.

newObjectId = ObjectId("507f191e810c19729de860ea")

๋‹ค์Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.