# How to Reconfigure MongoDB Database Clusters MongoDB is a source-available cross-platform document-oriented database program for high-volume storage. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. You can update your database engine’s parameters with the API, such as `verbosity` and `default_read_concern`. For a full list of the parameters you can edit, see the [control panel](#update-a-databases-configuration-using-the-control-panel) or [API reference](https://docs.digitalocean.com/reference/api/digitalocean/index.html.md#operation/databases_patch_config), under the **REQUEST BODY SCHEMA** section, click **config**, and then click the **mongo** option. To ensure database stability, you can only edit the parameters listed. To change other MongoDB parameters, [contact support](https://cloudsupport.digitalocean.com). ## Update a Database’s Configuration Using the Control Panel To update a database’s configuration from the [control panel](https://cloud.digitalocean.com//networking/databases), click on the database cluster you want to configure, go to the **Settings** tab, scroll down to the **Advanced Configurations** section, and click **Edit**. ![The advanced configurations section](https://docs.digitalocean.com/screenshots/databases/advanced-configurations.20a62a27a281b3fb4921f1b3bbcdccb0b64ab0134001e4454c049874857bc0ec.png) Browse the list or use the search bar to find the configuration you want to edit, then click the pencil icon. Use the text box or dropdown menu to enter your new configuration, then click **Update** to confirm your changes. ## Update a Database’s Configuration Using the CLI ## How to Update a Database’s Configuration Using the DigitalOcean CLI 1. [Install `doctl`](https://docs.digitalocean.com/reference/doctl/how-to/install/index.html.md), the official DigitalOcean CLI. 2. [Create a personal access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) and save it for use with `doctl`. 3. Use the token to grant `doctl` access to your DigitalOcean account. ```shell doctl auth init ``` 4. Finally, run `doctl databases configuration update`. Basic usage looks like this, but you can [read the usage docs](https://docs.digitalocean.com/reference/doctl/reference/databases/configuration/update/index.html.md) for more details: ```shell doctl databases configuration update [flags] ``` The following command updates a MySQL database’s time zone: ```shell doctl databases configuration update f81d4fae-7dec-11d0-a765-00a0c91e6bf6 --engine mysql --config-json '{"default_time_zone":"Africa/Maputo"}' ``` ## Update a Database’s Configuration Using the API ## How to Update a Database’s Configuration Using the DigitalOcean API 1. [Create a personal access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) and save it for use with the API. 2. Send a PATCH request to [`https://api.digitalocean.com/v2/databases/{database_cluster_uuid}/config`](https://docs.digitalocean.com/reference/api/digitalocean//index.html.md#operation/databases_patch_config). ### cURL Using cURL: ```shell curl -X PATCH \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \ -d '{"config": {"sql_mode": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES","sql_require_primary_key": true}}' \ "https://api.digitalocean.com/v2/databases/9cc10173-e9ea-4176-9dbc-a4cee4c4ff30/config" ``` ### Python Using [PyDo](https://github.com/digitalocean/pydo), the official DigitalOcean API client for Python: ```python import os from pydo import Client client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN")) resp = client.databases.patch_config(database_cluster_uuid="a7aba9d") ```