Provided by: libbson-doc_1.26.0-1.1ubuntu2_all bug

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

       2017-present, MongoDB, Inc

1.26.0                                            Mar 31, 2024                                     BSON_OID_T(3)