#define BSON_APPEND_ARRAY_BEGIN(b, key, child) \
   bson_append_array_begin (b, key, (int) strlen (key), child)

bson_append_array_begin (bson_t *bson,
                         const char *key,
                         int key_length,
                         bson_t *child);


  • bson: A bson_t.

  • key: A string containing the name for the key.

  • key_length: The length of key or -1 to call strlen().

  • child: A bson_t.


The bson_append_array_begin() function shall begin appending an array field to bson. This allows for incrementally building a sub-array. Doing so will generally yield better performance as you will serialize to a single buffer. When done building the sub-array, the caller MUST call bson_append_array_end().

For generating array element keys, see bson_uint32_to_string().

Consider using bson_array_builder_t to append an array without needing to generate array element keys.


Returns true if the operation was applied successfully. The function will fail if appending the array grows bson larger than INT32_MAX.