The MongoDB destination combines the analytical power of your data warehouse with the low-latency performance of a transactional database. It's been battle-tested with syncs up to hundreds of millions of rows.
Make sure to allowlist Hightouch IP addresses so Hightouch can reach your cluster. Refer to our
IP address docs to find the relevant IP addresses for your Hightouch region. If you are using Atlas, you can add allowlist IP addresses from Security > Network Access.
When creating a MongoDB destination, you can either enter the Host, Port, Database, User, and Password, or you can provide the full URI connection string. For more information, go to the official connection guide.
Hightouch can connect directly to MongoDB over the public internet or via an SSH tunnel. Since data is encrypted in transit via TLS, a direct connection is suitable for most use cases. You may need to set up a tunnel if your MongoDB instance is on a private network or virtual private cloud (VPC).
Hightouch supports both standard and reverse SSH tunnels. To learn more about SSH tunneling, refer to Hightouch's tunneling documentation.
Enter the following required fields into Hightouch:
Host: The hostname or IP address of your MongoDB server. For help finding this, go to the official connection guide.
Port: The port number of your MongoDB server. The default port number is 27017, but yours may be different. You don't need to specify the port if you are using SRV protocol.
Database: The name of the your MongoDB database.
Username: This can be your personal MongoDB login or a dedicated user for Hightouch.
Password: This is the password for the user specified above. If you're using Atlas, the user password might differ from the one you use to login to your MongoDB Atlas instance.
Is the host name a seedlist record?: To use SRV protocol (Hightouch defaults to standard), you must toggle this setting. If you are using MongoDB Atlas and the connection string begins with protocol mongodb+srv, toggle this setting to connect.
Hightouch requires choosing one column to define how to match data in your source to documents in MongoDB. It's usually best to use the _id field in MongoDB. Otherwise, you can also select _id (Object ID) if you already have Object ID values in your source data.
You can also choose to record match on a custom MongoDB field. To do this, you need to create a unique index on a single field, which is a specific type of single field index. Before creating this index, make sure that the field doesn't contain duplicate values, as this makes the index build fail with an Unknown error message.
If you record match on a custom field, MongoDB automatically generates an Object ID to insert in the _id field.
You can map the columns you want to include when creating new MongoDB documents or updating existing ones by selecting the model column and typing the respective MongoDB field name. Otherwise, you can include every column from your model by checking the Sync all columns box.
Create a user in MongoDB specifically for Hightouch and only allow that user to access the collections you want Hightouch to access. Don't use the 'root' user.
This error can occur if the destination wasn't configured correctly. Make sure to use the correct password for the user specified in the configuration. If the error is still happening, try changing your MongoDB user's password and attempting the setup again.
Hightouch provides complete visibility into the API calls made during each of your sync runs. We recommend reading our article on debugging tips and tricks to learn more.