문서 메뉴
문서 홈
/ / /
C 드라이버
/ /

ObjectID

이 페이지의 내용

  • 구성
  • ObjectID 정렬
  • 객체 ID 비교
  • 생성
  • ObjectID 문자열 구문 분석
  • 객체 ID 해싱
  • ObjectId 생성 시간 가져오기

Libbson은 ObjectID를 생성하는 간단한 방법을 제공합니다. 요구 사항에 따라 단일 스레드 또는 다중 스레드 방식으로 사용할 수 있습니다.

bson_oid_t 구조체는 ObjectID MongoDB에서 를 나타냅니다.96비트 식별자입니다.

  • 4 바이트 : 빅엔디안 형식의 UNIX 타임스탬프입니다.

  • 5 바이트: 난수입니다.

  • 3 바이트 : 빅 엔디안에서 rand() 부터 증가하는 24비트 단조적 카운터입니다.

C에서 정렬하는 일반적인 방법은 을 사용하는 qsort() 것입니다. 따라서 Libbson은 qsort() bson_oid_compare 라는 호환 콜백 함수를 제공합니다. .less than 1 greater than 10 bson_oid_t 의 동일성에 따라 , 또는 반환합니다. 구조.

단순히 두 개의 bson_oid_t 를 비교하려는 경우 동등성을 위해 bson_oid_equal을 사용합니다.

bson_oid_t 를 생성하려면 , 다음을 사용할 수 있습니다.

bson_oid_t oid;
bson_oid_init (&oid, NULL);

bson_oid_t 가 포함된 문자열을 구문 분석할 수도 있습니다. . 입력 문자열 24 은 반드시 자 이상이어야 합니다.

bson_oid_t oid;
bson_oid_init_from_string (&oid, "123456789012345678901234");
bson_oid_t oid;
bson_oid_init_from_string_unsafe (&oid, "123456789012345678901234");

해시테이블에 항목을 저장해야 하는 경우 bson_oid_t 를 키로 사용합니다. Libbson은 이러한 목적을 위해 해시 함수를 제공합니다. 이는 DJB 해시를 기반으로 합니다.

unsigned hash;
hash = bson_oid_hash (oid);

bson_oid_t 가 생성된 시간을 쉽게 가져올 수 있습니다. bson_oid_get_time_t를 사용하여 생성되었습니다.

time_t t;
t = bson_oid_get_time_t (oid);
printf ("The OID was generated at %u\n", (unsigned) t);

돌아가기

오류 처리

다음

BSON 문서 구문 분석 및 반복