Provided by: libbson-doc_1.22.1-1_all bug

NAME

       bson_oid_t - bson_oid_t

       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

       2017-present, MongoDB, Inc