Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
BSON_ITER_T(3)			    libbson			BSON_ITER_T(3)

BSON Document Iterator

SYNOPSIS
	  #include <bson/bson.h>

	  #define BSON_ITER_HOLDS_DOUBLE(iter) /* ... */

	  #define BSON_ITER_HOLDS_UTF8(iter) /*	... */

	  #define BSON_ITER_HOLDS_DOCUMENT(iter) /* ...	*/

	  #define BSON_ITER_HOLDS_ARRAY(iter) /* ... */

	  #define BSON_ITER_HOLDS_BINARY(iter) /* ... */

	  #define BSON_ITER_HOLDS_UNDEFINED(iter) /* ... */

	  #define BSON_ITER_HOLDS_OID(iter) /* ... */

	  #define BSON_ITER_HOLDS_BOOL(iter) /*	... */

	  #define BSON_ITER_HOLDS_DATE_TIME(iter) /* ... */

	  #define BSON_ITER_HOLDS_NULL(iter) /*	... */

	  #define BSON_ITER_HOLDS_REGEX(iter) /* ... */

	  #define BSON_ITER_HOLDS_DBPOINTER(iter) /* ... */

	  #define BSON_ITER_HOLDS_CODE(iter) /*	... */

	  #define BSON_ITER_HOLDS_SYMBOL(iter) /* ... */

	  #define BSON_ITER_HOLDS_CODEWSCOPE(iter) /* ... */

	  #define BSON_ITER_HOLDS_INT32(iter) /* ... */

	  #define BSON_ITER_HOLDS_TIMESTAMP(iter) /* ... */

	  #define BSON_ITER_HOLDS_INT64(iter) /* ... */

	  #define BSON_ITER_HOLDS_DECIMAL128(iter) /* ... */

	  #define BSON_ITER_HOLDS_MAXKEY(iter) /* ... */

	  #define BSON_ITER_HOLDS_MINKEY(iter) /* ... */

	  #define BSON_ITER_HOLDS_INT(iter) \
	     (BSON_ITER_HOLDS_INT32 (iter) || BSON_ITER_HOLDS_INT64 (iter))

	  #define BSON_ITER_HOLDS_NUMBER(iter) \
	     (BSON_ITER_HOLDS_INT (iter) || BSON_ITER_HOLDS_DOUBLE (iter))

	  #define BSON_ITER_IS_KEY(iter, key) \
	     (0	== strcmp ((key), bson_iter_key	((iter))))

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

DESCRIPTION
       bson_iter_t  is	a  structure used to iterate through the elements of a
       bson_t. It is meant to be used on the stack and can be discarded	at any
       time as it contains no external allocation. The contents	of the	struc-
       ture should be considered private and may change	between	releases, how-
       ever the	structure size will not	change.

       The  bson_t MUST	be valid for the lifetime of the iter and it is	an er-
       ror to modify the bson_t	while using the	iter.

EXAMPLES
	  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_DOCUMENT	(&iter)	|| 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));
	  }

AUTHOR
       MongoDB,	Inc

COPYRIGHT
       2009-present, MongoDB, Inc.

1.30.2				 Apr 12, 2025			BSON_ITER_T(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=bson_iter_t&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help