- MongoDB C Driver 1.9.3-dev »
- API Reference »
- mongoc_client_t

# mongoc_client_select_server()

## Synopsis

    mongoc_server_description_t *
    mongoc_client_select_server (mongoc_client_t *client,
                                 bool for_writes,
                                 const mongoc_read_prefs_t *prefs,
                                 bson_error_t *error);

Choose a server for an operation, according to the logic described in the Server Selection Spec.

Use this function only for building a language driver that wraps the C Driver. When writing applications in C, higher-level functions automatically select a suitable server.

## Parameters

- `client`: A mongoc_client_t.
- `for_writes`: Whether to choose a server suitable for writes or reads.
- `prefs`: An optional mongoc_read_prefs_t. If `for_writes` is true, `prefs` must be NULL. Otherwise, use `prefs` to customize server selection, or pass NULL to use the read preference configured on the client.
- `error`: An optional location for a bson_error_t or `NULL`.

## Returns

A mongoc_server_description_t that must be freed with mongoc_server_description_destroy(). If no suitable server is found, returns NULL and `error` is filled out.

Created using Sphinx 1.6.6, based on Sphinx Readable Theme.