---
name: "bson_append_array_begin"
section: "3"
platform: "linux"
package: "libbson-doc"
version: "1.30.4-1+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/bson_append_array_begin"
---

# bson\_append\_array\_begin(3)

## SYNOPSIS

```
#define BSON_APPEND_ARRAY_BEGIN(b, key, child) \
   bson_append_array_begin (b, key, (int) strlen (key), child)
bool
bson_append_array_begin (bson_t *bson,
                         const char *key,
                         int key_length,
                         bson_t *child);
```

## PARAMETERS

- •

  **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*.

## DESCRIPTION

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

Returns **true** if the operation was applied successfully. The function will fail if appending the array grows **bson** larger than INT32\_MAX.

**SEE ALSO:**

```
bson_array_builder_t
```

## AUTHOR

MongoDB, Inc

## COPYRIGHT

2009-present, MongoDB, Inc.
