table of contents
BSON_OID_T(3) | libbson | BSON_OID_T(3) |
BSON ObjectID Abstraction
SYNOPSIS¶
#include <bson/bson.h> typedef struct {
uint8_t bytes[12]; } bson_oid_t;
DESCRIPTION¶
The bson_oid_t structure contains the 12-byte ObjectId notation defined by the BSON ObjectID specification.
ObjectId is a 12-byte BSON type, constructed using:
- a 4-byte value representing the seconds since the Unix epoch (in Big Endian).
- a 5-byte random value.
- a 3-byte counter (Big Endian), starting with a random value.
STRING CONVERSION¶
You can convert an Object ID to a string using bson_oid_to_string() and back with bson_oid_init_from_string().
HASHING¶
A bson_oid_t can be used in hashtables using the function bson_oid_hash() and bson_oid_equal().
COMPARING¶
A bson_oid_t can be compared to another using bson_oid_compare() for qsort() style comparing and bson_oid_equal() for direct equality.
VALIDATING¶
You can validate that a string containing a hex-encoded ObjectID is valid using the function bson_oid_is_valid().
EXAMPLE¶
#include <bson/bson.h> #include <stdio.h> int main (int argc, char *argv[]) {
bson_oid_t oid;
char str[25];
bson_oid_init (&oid, NULL);
bson_oid_to_string (&oid, str);
printf ("%s\n", str);
if (bson_oid_is_valid (str, sizeof str)) {
bson_oid_init_from_string (&oid, str);
}
printf ("The UNIX time was: %u\n", (unsigned) bson_oid_get_time_t (&oid));
return 0; }
AUTHOR¶
MongoDB, Inc
COPYRIGHT¶
2009-present, MongoDB, Inc.
October 9, 2024 | 1.28.1 |