bson_iter_t man page

bson_iter_t — BSON Document Iterator


#include <bson.h>

typedef struct
   /*< private >*/
} bson_iter_t;


bson_iter_t is a structure used to iterate through the elements of a bson_t

The bson_t

MUST be valid for the lifetime of the iter and it is an error to modify the bson_t while using the iter.


bson_iter_t iter;

if (bson_iter_init (&iter, my_bson_doc)) {
   while (bson_iter_next (&iter)) {
      printf ("Found a field named: %s\n", bson_iter_key (&iter));
bson_iter_t iter;

if (bson_iter_init (&iter, my_bson_doc) &&
    bson_iter_find (&iter, "my_field")) {
   printf ("Found the field named: %s\n", bson_iter_key (&iter));
bson_iter_t iter;
bson_iter_t sub_iter;

if (bson_iter_init_find (&iter, my_bson_doc, "mysubdoc") &&
     BSON_ITER_HOLDS_ARRAY (&iter)) &&
    bson_iter_recurse (&iter, &sub_iter)) {
   while (bson_iter_next (&sub_iter)) {
      printf ("Found key \"%s\" in sub document.\n",
              bson_iter_key (&sub_iter));
bson_iter_t iter;

if (bson_iter_init (&iter, my_doc) &&
    bson_iter_find_descendant (&iter, "a.b.c.d", &sub_iter)) {
   printf ("The type of a.b.c.d is: %d\n",
           (int)bson_iter_type (&sub_iter));


This page is part of libbson. Please report any bugs at


2017‐01‐11 libbson