GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
BSON_ITER_T(3) libbson BSON_ITER_T(3)

BSON Document Iterator

#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;


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 structure should be considered private and may change between releases, however the structure size will not change.

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_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)); }


MongoDB, Inc

2009-present, MongoDB, Inc.

July 3, 2025 1.30.4

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.