CouchDB
ToolJet can connect to CouchDB databases to read and write data.
Connection
To establish a connection with the CouchDB data source, you can either click on the + Add new Data source button located on the query panel or navigate to the Data Sources page through the ToolJet dashboard.
ToolJet requires the following to connect to your CouchDB.
- Username
- Password
![Couch listing](/img/datasource-reference/couchdb/connections.png)
Querying CouchDB
- Click on + Add button of the query manager at the bottom panel of the editor.
- Select the CouchDB datasource added in previous step.
- Select the operation you want to perform and enter the query.
- Click on the Preview button to preview the output or Click on the Run button to create and trigger the query.
![Couch listing](/img/datasource-reference/couchdb/operations.png)
Supported Queries
List Records
This query lists all the records in a database.
Optional Parameters
- Include docs
- Descending order
- Limit
- Skip
![Couch listing](/img/datasource-reference/couchdb/listing-v2.png)
Response Example
{
"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"
}
},
]
}
Retrieve Record
This operation fetches a single record by its record ID.
Required Parameters:
- Record ID
![Couch retrieve view](/img/datasource-reference/couchdb/retrieving-v2.png)
Response Example
{
"_id": "e33dc4e209689cb0400d095fc401a1e0",
"_rev": "1-a62af8e14451af88c150e7e718b7a0e8",
"0": {
"name": "test data"
}
}
Create Record
Inserts a new record into the database.
Required Parameters:
- Records
![Couch create view](/img/datasource-reference/couchdb/creating-v2.png)
Example
[{"name":"tooljet"}]
Response Example
{
"ok": true,
"id": "23212104e60a71edb42ebc509f0049a2",
"rev": "1-b0a625abc4e21ee554737920156e911f"
}
Update 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 Parameters:
- Record ID
- Revision ID
![Couch update view](/img/datasource-reference/couchdb/updating-v2.png)
Example
[{"name":"tooljet"}]
Response Example
{
"ok": true,
"id": "23212104e60a71edb42ebc509f0049a2",
"rev": "2-b0a625abc4e21ee554737920156e911f"
}
Delete Record
Removes a record from the database by its record ID.
Required Parameters:
- Record ID
- Revision ID
![Couch delete view](/img/datasource-reference/couchdb/deleteRecord.png)
Response Example
{
"ok": true,
"id": "rev_id=2-3d01e0e87139c57e9bd083e48ecde13d&record_id=e33dc4e209689cb0400d095fc401a1e0",
"rev": "1-2b99ef28c03e68ea70bb668ee55ffb7b"
}
Find
Find documents using a declarative JSON querying syntax.
Required Parameters:
- Mangoquery
NOTE: selector syntax: https://pouchdb.com/guides/mango-queries.html
![Couch find](/img/datasource-reference/couchdb/find-v2.png)
Example
{
"selector": {
"year": {"$gte": 2015}
},
"fields": ["year"]
}
Example response from CouchDB:
![Couch find response](/img/datasource-reference/couchdb/find_response.png)
Get View
Views are the primary tool used for querying and reporting on CouchDB documents.
Required Parameters
- View url
Optional Parameters:
- Start key
- End key
- Limit
- Skip
![Couch get view](/img/datasource-reference/couchdb/get_view-v2.png)
Response Example
{
"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"
}
}
]
}