본문 바로가기
쿤즈 Server/MongoDB

[MongoDB] 몽고DB의 ObjectID

by Koonz:) 2021. 3. 15.
728x90

MongoDB에서는 Collections에 데이터를 넣을때 ObejctID를 직접 넣어주지 않는 이상 자동으로 값이 부여가 되어 저장됩니다. 그리고 모든 데이터들은 각각의 ObjectID를 부여 받습니다.

 

 

이번 포스팅에서는 ObjectID가 무엇인지 알아보도록 하겠습니다.


MongoDB의 ObjectID

ObjectID는 12byte 크기의 문자와 숫자로 구성된 값입니다. ObjectID()의 값을 반환하면 12byte의 hexadecimal 값으로 결과를 반환합니다. 그리고 이 값들은 각각의 의미를 가지고 있습니다.

  • 첫 4byte는 timestamp 값을 의미합니다. 이 값은 Unix시대부터 초단위로 측정된 값을 의미합니다.
  • 다음 5byte는 랜덤으로 생성된 값입니다.
  • 다음 3byte는 증가하는 count이며, 최초값은 랜덤으로 생성됩니다.

MongoDB는 BSON형태로 데이터를 저장한다고 지난 포스팅에서 말씀드렸습니다.

 

2021.03.11 - [쿤즈 Server/MongoDB] - [MongoDB] MongoDB에서 사용하는 JSON vs BSON

 

[MongoDB] MongoDB에서 사용하는 JSON vs BSON

몽고DB는 Document로 데이터를 관리하고 있습니다. 이때 우리 눈으로 데이터를 받아보면 모두 JSON형태로 데이터를 보여주고, 저장합니다. 또 검색기능을 사용할 때에도 JSON문법에 맞게 입력해줍니

koonsland.tistory.com

BSON 형식 자체는 litten-endian형식이지만, timestamp와 count는 big-endian이며, 바이트 시퀀스에서 가장 중요한 바이트가 먼저 나타난다고 합니다.


MongoDB에 저장되는 ObjectID

MongoDB에 데이터를 저장할 때, ObjectID를 별도로 지정해주지 않은 경우에는 자동으로 값이 부여가 됩니다.

이제 이 값들을 불러와서 사용하는 경우가 있다면 다음과 같은 함수를 사용합니다. 이렇게 저장된 ObjectID는 원하는 데이터를 찾거나 업데이트, 혹은 삭제를 할때 이용될 수 있습니다. RDBMS에서 primary key와 같은 역할을 해주는 값입니다.

 

참고자료 : docs.mongodb.com/manual/reference/method/ObjectId/index.html#objectid

 

ObjectId — MongoDB Manual

Generate a New ObjectId To generate a new ObjectId, use ObjectId() with no argument: In this example, the value of x would be: ObjectId("507f1f77bcf86cd799439011")

docs.mongodb.com


MongoDB의 Insert를 알아보기 전 ObjectId에 대해서 알아보았습니다. 그럼 다음 포스팅에서는 실제 데이터를 넣었을 때, 어떠한 방법으로 넣고 어떻게 가져올 수 있는지 알아보도록 하겠습니다. 도움이 되셨으면 합니다. 이상입니다.

댓글