# bson_append_value()

## Synopsis

    bool
    bson_append_value (bson_t             *bson,
                       const char         *key,
                       int                 key_length,
                       const bson_value_t *value);

## Parameters

bson | A bson_t.
key | An ASCII C string containing the name of the field.
key_length | The length of key in bytes, or -1 to determine the length with strlen().
value | A bson_value_t.

## Description

Appends a new field to bson by determining the boxed type in value. This is useful if you want to copy fields between documents but do not know the field type until runtime.

## Returns

true if the operation was applied successfully, otherwise false and bson should be discarded.