---
name: "bson_copy_to_excluding_noinit"
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_copy_to_excluding_noinit"
---

# bson\_copy\_to\_excluding\_noinit(3)

## SYNOPSIS

```
void
bson_copy_to_excluding_noinit (const bson_t *src,
                               bson_t *dst,
                               const char *first_exclude,
                               ...);
```

## PARAMETERS

- •

  **src**: A *bson\_t*.

- •

  **dst**: A *bson\_t*.

- •

  **first\_exclude**: The first field name to exclude.

## DESCRIPTION

The *bson\_copy\_to\_excluding\_noinit()* function shall copy all fields from **src** to **dst** except those specified by the variadic, NULL terminated list of keys starting from **first\_exclude**. Works the same way as *bson\_copy\_to\_excluding()*, except does **not** call *bson\_init()* on **dst**. This function should be preferred in new code over *bson\_copy\_to\_excluding()*.

**WARNING:**

This is generally not needed except in very special situations.

## EXAMPLE

```
#include <bson/bson.h>
int main ()
{
   bson_t bson;
   bson_t bson2;
   char *str;
   bson_init (&bson);
   bson_append_int32 (&bson, "a", 1, 1);
   bson_append_int32 (&bson, "b", 1, 2);
   bson_append_int32 (&bson, "c", 1, 2);
   bson_init (&bson2);
   bson_copy_to_excluding_noinit (&bson, &bson2, "b", NULL);
   str = bson_as_relaxed_extended_json (&bson2, NULL);
   /* Prints
    * { "a" : 1, "c" : 2 }
    */
   printf ("%s\n", str);
   bson_free (str);
   bson_destroy (&bson);
   bson_destroy (&bson2);
}
```

## AUTHOR

MongoDB, Inc

## COPYRIGHT

2009-present, MongoDB, Inc.
