ToolJet/docs/versioned_docs/version-2.19.0/data-sources/mongodb.md

147 lines
5.4 KiB
Markdown
Raw Normal View History

2023-09-28 10:21:27 +00:00
---
id: mongodb
title: MongoDB
---
# MongoDB
ToolJet can connect to MongoDB to read and write data.
## Connection
Please make sure the host/ip of the database is accessible from your VPC if you have self-hosted ToolJet. If you are using ToolJet cloud, please whitelist our IP.
To establish a connection with the MongoDB data source, click on the `+Add new data source` button located on the query panel or navigate to the [Data Sources](https://docs.tooljet.com/docs/data-sources/overview) page from the ToolJet dashboard.
2023-09-28 10:21:27 +00:00
ToolJet requires the following to connect to your MongoDB.
- **Host**
- **Port**
- **Username**
- **Password**
It is recommended to create a new MongoDB user so that you can control the access levels of ToolJet.
<img className="screenshot-full" src="/img/datasource-reference/mo-connect.png" alt="ToolJet - Mongo connection" height="250"/>
Click on 'Test connection' button to verify if the credentials are correct and that the database is accessible to ToolJet server. Click on 'Save' button to save the data source.
## Querying MongoDB
Click on `+` button of the query manager at the bottom panel of the editor and select the database added in the previous step as the data source. Select the operation that you want to perform and click 'Save' to save the query.
<img className="screenshot-full" src="/img/datasource-reference/mo-query.png" alt="ToolJet - Mongo query" height="250"/>
Click on the 'run' button to run the query.
2023-09-28 10:21:27 +00:00
:::tip
Query results can be transformed using transformations. Read our transformations documentation to see how: [link](/docs/tutorial/transformations)
:::
### Supported operations
2023-09-28 10:21:27 +00:00
- [List Collections](#list-collections)
- [Find One](#find-one)
- [Find Many](#find-many)
- [Total Count](#total-count)
- [Count](#count)
- [Distinct](#distinct)
- [Insert One](#insert-one)
- [Insert Many](#insert-many)
- [Update One](#update-one)
- [Update Many](#update-many)
- [Replace One](#replace-one)
- [Find One and Update](#find-one-and-update)
- [Find One and Replace](#find-one-and-replace)
- [Find One and Delete](#find-one-and-delete)
- [Aggregate](#aggregate)
- [Delete One](#delete-one)
- [Delete Many](#delete-many)
- [Bulk Operations](#bulk-operations)
2023-09-28 10:21:27 +00:00
#### List Collections
2023-09-28 10:21:27 +00:00
Returns list of collections
2023-09-28 10:21:27 +00:00
#### Fine One
2023-09-28 10:21:27 +00:00
Return a document which satisfy the given filter and options. [Reference](https://docs.mongodb.com/drivers/node/v4.0/usage-examples/findOne)
2023-09-28 10:21:27 +00:00
#### Fine Many
2023-09-28 10:21:27 +00:00
Return list of documents which satisfy the given filter and options. [Reference](https://docs.mongodb.com/drivers/node/v4.0/usage-examples/find/)
2023-09-28 10:21:27 +00:00
#### Total Count
2023-09-28 10:21:27 +00:00
Returns an estimation of the number of documents in the collection based on collection metadata. [Reference](https://mongodb.github.io/node-mongodb-native/4.0/classes/collection.html#estimateddocumentcount)
2023-09-28 10:21:27 +00:00
#### Count
2023-09-28 10:21:27 +00:00
Returns the number of documents based on the filter. [Reference](https://mongodb.github.io/node-mongodb-native/4.0/classes/collection.html#countdocuments)
2023-09-28 10:21:27 +00:00
#### Distinct
2023-09-28 10:21:27 +00:00
Retrieve a list of distinct values for a field based on the filter. [Reference](https://docs.mongodb.com/drivers/node/v4.0/usage-examples/distinct/)
2023-09-28 10:21:27 +00:00
#### Insert One
2023-09-28 10:21:27 +00:00
Insert a document. [Reference](https://docs.mongodb.com/drivers/node/v4.0/usage-examples/insertOne/)
2023-09-28 10:21:27 +00:00
#### Insert Many
2023-09-28 10:21:27 +00:00
Insert list of documents. [Reference](https://docs.mongodb.com/drivers/node/v4.0/usage-examples/insertMany/)
2023-09-28 10:21:27 +00:00
#### Update One
2023-09-28 10:21:27 +00:00
Update a document based on the filter. [Reference](https://docs.mongodb.com/drivers/node/v4.0/usage-examples/updateOne/)
2023-09-28 10:21:27 +00:00
#### Update Many
2023-09-28 10:21:27 +00:00
Update many documents based on the filter. [Reference](https://docs.mongodb.com/drivers/node/v4.0/usage-examples/updateMany/)
2023-09-28 10:21:27 +00:00
#### Replace One
2023-09-28 10:21:27 +00:00
Replace a document based on filter. [Reference](https://docs.mongodb.com/drivers/node/v4.0/usage-examples/replaceOne/)
2023-09-28 10:21:27 +00:00
#### Find One and Update
2023-09-28 10:21:27 +00:00
If your application requires the document after updating, use this instead of `Update One`. [Reference](https://mongodb.github.io/node-mongodb-native/4.0/classes/collection.html#findoneandupdate)
2023-09-28 10:21:27 +00:00
#### Find One and Replace
2023-09-28 10:21:27 +00:00
If your application requires the document after updating, use this instead of `Replace One`. [Reference](https://mongodb.github.io/node-mongodb-native/4.0/classes/collection.html#findoneandreplace)
2023-09-28 10:21:27 +00:00
#### Find One and Delete
2023-09-28 10:21:27 +00:00
If your application requires the document after deleting, use this instead of `Delete One`. [Reference](https://mongodb.github.io/node-mongodb-native/4.0/classes/collection.html#findoneanddelete)
2023-09-28 10:21:27 +00:00
#### Aggregate
2023-09-28 10:21:27 +00:00
Aggregation operations are expressions you can use to produce reduced and summarized results. [Reference](https://docs.mongodb.com/drivers/node/v4.0/fundamentals/aggregation/)
2023-09-28 10:21:27 +00:00
#### Delete One
2023-09-28 10:21:27 +00:00
Delete a record based on the filter. [Reference](https://docs.mongodb.com/drivers/node/v4.0/usage-examples/deleteOne/)
2023-09-28 10:21:27 +00:00
#### Delete Many
2023-09-28 10:21:27 +00:00
Delete many records based on the filter. [Reference](https://docs.mongodb.com/drivers/node/v4.0/usage-examples/deleteMany/)
2023-09-28 10:21:27 +00:00
#### Bulk Operations
2023-09-28 10:21:27 +00:00
Perform bulk operations. [Reference](https://docs.mongodb.com/drivers/node/v4.0/usage-examples/bulkWrite/)
### Dynamic Quries
2023-09-28 10:21:27 +00:00
```javascript
{ amount: { $lt: '{{ components.textinput1.value }}' }}
// Dates
2023-09-28 10:21:27 +00:00
// supported: Extended JSON syntax
{ createdAt: { $date: '{{ new Date('01/10/2020') }}'} }
// not supported: MongoDB classic syntax
{ createdAt: new Date('01/10/2020') }
```
2023-09-28 10:21:27 +00:00
Reference on [mongodb extended JSON](https://docs.mongodb.com/manual/reference/mongodb-extended-json/) supported data types