--- id: couchdb title: CouchDB --- ToolJet can connect to CouchDB databases to read and write data. CocuhDB uses basic auth for authentication, username and password for the database is required to create an CouchDB data source on ToolJet. For more info visit [CouchDB docs](https://docs.couchdb.org/en/stable/). ## Supported Queries: - **[Listing Records](#listing-records)** - **[Retrieving a Record](#retrieving-a-record)** - **[Creating a Record](#creating-a-record)** - **[Updating a Record](#updating-a-record)** - **[Deleting a Record](#deleting-a-record)** - **[Find](#find)** - **[Retrieving a View](#retrieving-a-view)** :::info NOTE: Record ID is same as document ID("_id") . ::: ### Listing Records This query lists all the records in a database. #### Optional Parameters: - **Include docs** - **Descending order** - **Limit** - **Skip** :::info descending (boolean) – Return the documents in descending order by key. Default is false. limit (number) – Limit the number of the returned documents to the specified number. skip (number) – Skip this number of records before starting to return the results. Default is 0. include_docs (boolean) – include_docs key is set to false by default , if true it returns the document data along with the default fields. ::: Couch listing Example response from CouchDb: ```json { "total_rows": 3, "offset": 0, "rows": [ { "id": "23212104e60a71edb42ebc509f000dc2", "key": "23212104e60a71edb42ebc509f000dc2", "value": { "rev": "1-0cc7f48876f15883394e5c139c628123" } }, { "id": "23212104e60a71edb42ebc509f00216e", "key": "23212104e60a71edb42ebc509f00216e", "value": { "rev": "1-b3c45696b10cb08221a335ff7cbd8b7a" } }, { "id": "23212104e60a71edb42ebc509f00282a", "key": "23212104e60a71edb42ebc509f00282a", "value": { "rev": "1-da5732beb913ecbded309321cac892d2" } }, ] } ``` ### Retrieving a Record #### Required Parameters: - **Record ID** Couch retrieve view Example response from CouchDb: ```json { "_id": "e33dc4e209689cb0400d095fc401a1e0", "_rev": "1-a62af8e14451af88c150e7e718b7a0e8", "0": { "name": "test data" } } ``` The returned JSON is the JSON of the document, including the document ID and revision number: ### Creating a Record Couch create view #### Example Records: ```json [{"name":"tooljet"}] ``` Click on the **run** button to run the query. Example response from CouchDb: ```json { "ok": true, "id": "23212104e60a71edb42ebc509f0049a2", "rev": "1-b0a625abc4e21ee554737920156e911f" } ``` ### Updating a Record You can get the revision id value, by sending a GET request to get the document details. You get the document as JSON in the response. For each update to the document, the revision field "_rev" gets changed. #### Required Rarameters: - **Revision ID** - **Record ID** Couch update view #### Example Body: ```json [{"name":"tooljet"}] ``` Click on the **run** button to run the query. :::info NOTE: Query must be saved before running. ::: Example response from CouchDb: ```json { "ok": true, "id": "23212104e60a71edb42ebc509f0049a2", "rev": "2-b0a625abc4e21ee554737920156e911f" } ``` ### Deleting a Record #### Required Parameters: - **Revision ID** - **Record ID** Couch delete view Click on the **run** button to run the query. Example response from CouchDb: ```json { "ok": true, "id": "rev_id=2-3d01e0e87139c57e9bd083e48ecde13d&record_id=e33dc4e209689cb0400d095fc401a1e0", "rev": "1-2b99ef28c03e68ea70bb668ee55ffb7b" } ``` ### Find Find documents using a declarative JSON querying syntax. #### Required Parameters: - **Selector** :::info NOTE: selector syntax: https://pouchdb.com/guides/mango-queries.html ::: Couch find #### Example Body: ```json { "selector": { "year": {"$gte": 2015} }, "fields": ["year"] } ``` Click on the **run** button to run the query. :::info NOTE: selector (json) – JSON object describing criteria used to select documents. More information : https://docs.couchdb.org/en/stable/api/database/find.html ::: Example response from CouchDb: Couch find response ### Retrieving a View Views are the primary tool used for querying and reporting on CouchDB documents. #### Required Parameters: - **View url** Reference for view :https://docs.couchdb.org/en/3.2.0/ddocs/views/intro.html#what-is-a-view Couch get view #### Optional Parameters: - **Start key** - **End key** - **Limit** - **Skip** Click on the **run** button to run the query. :::info startkey (json) – Return records starting with the specified key. endkey (json) – Stop returning records when the specified key is reached. limit (number) – Limit the number of the returned documents to the specified number. skip (number) – Skip this number of records before starting to return the results. Default is 0. ::: Example response from CouchDb: ```json { "total_rows": 4, "offset": 0, "rows": [ { "id": "23212104e60a71edb42ebc509f000dc2", "key": "23212104e60a71edb42ebc509f000dc2", "value": { "rev": "1-0cc7f48876f15883394e5c139c628123" } }, { "id": "23212104e60a71edb42ebc509f00216e", "key": "23212104e60a71edb42ebc509f00216e", "value": { "rev": "1-b3c45696b10cb08221a335ff7cbd8b7a" } }, { "id": "23212104e60a71edb42ebc509f00282a", "key": "23212104e60a71edb42ebc509f00282a", "value": { "rev": "1-da5732beb913ecbded309321cac892d2" } }, { "id": "23212104e60a71edb42ebc509f002cbd", "key": "23212104e60a71edb42ebc509f002cbd", "value": { "rev": "1-ca5bb3c0767eb42ea6c33eee3d395b59" } } ] } ```