- libbson 1.13.1 »
- API Reference »
- bson_iter_t

# bson_iter_init()

## Synopsis

    bool
    bson_iter_init (bson_iter_t *iter, const bson_t *bson);

## Parameters

- `iter`: A bson_iter_t.
- `bson`: A bson_t.

## Description

The `bson_iter_init()` function shall initialize `iter` to iterate upon the BSON document `bson`. Upon initialization, `iter` is placed before the first element. Callers must call bson_iter_next(), bson_iter_find(), or bson_iter_find_case() to advance to an element.

## Returns

Returns true if the iter was successfully initialized.

## Example

    static void
    print_doc_id (const bson_t *doc)
    {
       bson_iter_t iter;
       bson_oid_t oid;
       char oidstr[25];

       if (bson_iter_init (&iter, doc) && bson_iter_find (&iter, "_id") &&
           BSON_ITER_HOLDS_OID (&iter)) {
          bson_iter_oid (&iter, &oid);
          bson_oid_to_string (&oid, oidstr);
          printf ("%s\n", oidstr);
       } else {
          printf ("Document is missing _id.\n");
       }
    }

    /* alternatively */

    static void
    print_doc_id (const bson_t *doc)
    {
       bson_iter_t iter;
       bson_oid_t oid;
       char oidstr[25];

       if (bson_iter_init_find (&iter, doc, "_id") && BSON_ITER_HOLDS_OID (&iter)) {
          bson_iter_oid (&iter, &oid);
          bson_oid_to_string (&oid, oidstr);
          printf ("%s\n", oidstr);
       } else {
          printf ("Document is missing _id.\n");
       }
    }

### See Also:

bson_iter_init_find

bson_iter_init_find_case

bson_iter_init_find_w_len

bson_iter_init_from_data

Created using Sphinx 1.8.3, based on Sphinx Readable Theme.