bson_oid_t(3)

bson_oid_t3

Usage

#include <bson/bson.h>
typedef struct {
   uint8_t bytes[12];
} bson_oid_t;

BSON ObjectID Abstraction

Overview

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().

Examples

#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;
}

Releases

5 releases since Debian 9 (Stretch); the text changed 4 times.

  1. 9
  2. 10
  3. 11
  4. 12
  5. 13

Author

MongoDB, Inc

From libbson-doc 1.30.4-1+deb13u3 in Debian 13 (Trixie). Parsed by carta from the page's man source.