Provided by: libmongoc-doc_2.2.1-1_all 

SYNOPSIS
mongoc_collection_t*
mongoc_client_encryption_create_encrypted_collection (
mongoc_client_encryption_t *enc,
mongoc_database_t *database,
const char *name,
const bson_t *in_options,
bson_t *out_options,
const char *kms_provider,
const bson_t *opt_masterKey,
bson_error_t *error);
Create a new collection with Queryable Encryption <https://www.mongodb.com/docs/languages/c/c-driver/
current/libmongoc/guides/queryable-encryption/> enabled. Requires a valid mongoc_client_encryption_t <>
object to operate.
Added in version 1.24.0.
See also:
This function is a convenience API wrapping mongoc_database_create_collection() <>.
PARAMETERS
• enc: The mongoc_client_encryption_t <> to be used to configure encryption for the new collection.
• database: The mongoc_database_t <> in which the new collection will be created.
• name: The name of the new collection.
• in_options: The options for the new collection. (See below).
• out_options: An optional output option for the final create-collection options. Should point to storage
for a bson_t <https://www.mongoc.org/libbson/current/bson_t.html>. The pointed-to object must be
destroyed by the caller. If NULL, has no effect.
• kms_provider: The name of the KMS provider to use for generating new data encryption keys for encrypted
fields within the collection.
• opt_masterKey: If provided, used as the masterkey option when data encryption keys need to be created.
(See: mongoc_client_encryption_datakey_opts_set_masterkey() <>)
• error: Optional output parameter pointing to storage for a bson_error_t <https://www.mongoc.org/
libbson/current/bson_error_t.html>. If an error occurs, will be initialized with error information.
RETURNS
If successful, this function returns a new mongoc_collection_t <> object. Upon failure, returns NULL and
initializes *error with an error indicating the reason for failure. The returned collection object must
be freed by the caller.
CREATION OPTIONS
The in_options parameter behaves similarly to the opts parameter for mongoc_database_create_collection()
<>, which accepts the options for the create MongoDB command (Documented here <https://www.mongodb.com/
docs/manual/reference/command/create>). The in_options document accepted here is different in one
important way:
The $.encryptedFields.fields array is required by this function, and, unlike the schema documented for
the create command, accepts a value of null for the keyId parameter on each array element.
This function has the following as-if effect:
1. A new set of options O will be created based on in_options.
2. For each element F in the $.encryptedFields.fields array of O:
1. If F contains a "keyId": null element, a new data encryption key K_f will be created as-if by
calling the mongoc_client_encryption_create_datakey() <>, using the relevant arguments that were
given to mongoc_client_encryption_create_encrypted_collection.
2. The ID of K_f will be used to replace the "keyId": null element within F.
3. A collection will be created using the options O.
4. If out_options is not NULL, O will be written to out_options.
Author
MongoDB, Inc
Copyright
2009-present, MongoDB, Inc.
2.2.1 Dec 11, 2025MONGOC_CLIENT_ENCRYPTI...E_ENCRYPTED_COLLECTION(3)