[MongoDB] ObjectID 구조

-- MongoDB 2012. 12. 27. 10:53
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Overview

ObjectId is a 12-byte BSON type, constructed using:

  • a 4-byte timestamp,
  • a 3-byte machine identifier,
  • a 2-byte process id, and
  • a 3-byte counter.

In MongoDB, documents stored in a collection require a unique _id field that acts as a primary key. Because ObjectIds are small, most likely unique, and fast to generate, MongoDB uses ObjectIds as the default value for the _id field if the _id field is not specified; i.e., the mongod adds the _id field and generates a unique ObjectId to assign as its value.

Using ObjectIds for the _id field, provides the following additional benefits:

  • you can access the timestamp of the ObjectId’s creation, using the getTimestamp() method.
  • Sorting on an _id field that stores ObjectId values is equivalent to sorting by creation time.

Also consider the BSON Documents section for related information on MongoDB’s document orientation.

ObjectId()

The mongo shell provides the ObjectId() wrapper class to generate a new ObjectId, and to provide the following helper attribute and methods:

  • str

    The hexadecimal string value of the ObjectId() object.

  • getTimestamp()

    Returns the timestamp portion of the ObjectId() object as a Date.

  • toString()

    Returns the string representation of the ObjectId() object. The returned string literal has the format “ObjectId(...)”.

    Changed in version 2.2: In previous versions ObjectId.toString() returns the value of the ObjectId as a hexadecimal string.

  • valueOf()

    Returns the value of the ObjectId() object as a hexadecimal string. The returned string is thestr attribute.

    Changed in version 2.2: In previous versions ObjectId.valueOf() returns theObjectId() object.

Examples

Consider the following uses ObjectId() class in the mongo shell:

  • To generate a new ObjectId, use the ObjectId() constructor with no argument:

    x=ObjectId()

    In this example, the value of x would be:

    ObjectId("507f1f77bcf86cd799439011")
  • To generate a new ObjectId using the ObjectId() constructor with a unique hexadecimal string:

    y=ObjectId("507f191e810c19729de860ea")

    In this example, the value of y would be:

    ObjectId("507f191e810c19729de860ea")
  • To return the timestamp of an ObjectId() object, use the getTimestamp() method as follows:

    ObjectId("507f191e810c19729de860ea").getTimestamp()

    This operation will return the following Date object:

    ISODate("2012-10-17T20:46:22Z")
  • Access the str attribute of an ObjectId() object, as follows:

    ObjectId("507f191e810c19729de860ea").str

    This operation will return the following hexadecimal string:

    507f191e810c19729de860ea
  • To return the string representation of an ObjectId() object, use the toString() method as follows:

    ObjectId("507f191e810c19729de860ea").toString()

    This operation will return the following output:

    ObjectId("507f191e810c19729de860ea")
  • To return the value of an ObjectId() object as a hexadecimal string, use the valueOf() method as follows:

    ObjectId("507f191e810c19729de860ea").valueOf()

    This operation returns the following output:

    507f191e810c19729de860ea
출처 : http://docs.mongodb.org/manual/core/object-id/

'-- MongoDB' 카테고리의 다른 글

[MongoDB] $Type 연산자의 값  (0) 2012.12.28
[MongoDB] MongoDB 기본쿼리  (0) 2012.12.28
[MongoDB] MongoDB 기본요소  (0) 2012.12.27
[MongoDB] MongoDB 핵심기능  (0) 2012.12.21
[MongoDB] 윈도우XP에 몽고DB 설치하기  (0) 2012.11.15
posted by 어린왕자악꿍