0
0
MongodbHow-ToBeginner · 3 min read

How to Create an Atlas Trigger in MongoDB

To create an Atlas Trigger in MongoDB, go to your Atlas cluster, open the Triggers tab, and choose either a Database Trigger or Scheduled Trigger. Configure the trigger by selecting the event type, database, collection, and the function to run when triggered.
📐

Syntax

An Atlas Trigger is defined by these main parts:

  • Trigger Type: Choose between Database Trigger (runs on data changes) or Scheduled Trigger (runs on a time schedule).
  • Event: For database triggers, select events like insert, update, or delete.
  • Namespace: Specify the database and collection to watch.
  • Function: The JavaScript function that runs when the trigger fires.
javascript
exports = async function(changeEvent) {
  // Your code here
  console.log('Trigger fired:', changeEvent);
};
💻

Example

This example creates a database trigger that runs a function whenever a new document is inserted into the users collection in the mydb database.

json
{
  "name": "NewUserTrigger",
  "type": "DATABASE",
  "enabled": true,
  "cluster": "YourClusterName",
  "event": "INSERT",
  "database": "mydb",
  "collection": "users",
  "function": "exports = async function(changeEvent) {\n    const fullDocument = changeEvent.fullDocument;\n    console.log('New user added:', fullDocument);\n  };"
}
Output
New user added: { /* new user document data */ }
⚠️

Common Pitfalls

  • Not enabling the trigger after creation will prevent it from running.
  • Choosing the wrong event type (e.g., using UPDATE when you want INSERT).
  • Incorrectly specifying the database or collection namespace causes the trigger not to fire.
  • Writing functions without handling errors can cause silent failures.
json
/* Wrong: Missing enabling the trigger */
{
  "name": "MyTrigger",
  "type": "DATABASE",
  "enabled": false,  // Trigger is disabled
  "event": "INSERT",
  "database": "mydb",
  "collection": "users",
  "function": "exports = async function(changeEvent) { console.log('Triggered'); };"
}

/* Right: Enabled trigger */
{
  "name": "MyTrigger",
  "type": "DATABASE",
  "enabled": true,
  "event": "INSERT",
  "database": "mydb",
  "collection": "users",
  "function": "exports = async function(changeEvent) { console.log('Triggered'); };"
}
📊

Quick Reference

PropertyDescription
nameName of the trigger
typeType of trigger: DATABASE or SCHEDULED
enabledWhether the trigger is active (true/false)
clusterName of the Atlas cluster
eventEvent type to listen for (INSERT, UPDATE, DELETE)
databaseDatabase name to watch
collectionCollection name to watch
functionJavaScript function to execute on trigger

Key Takeaways

Create Atlas Triggers in the Atlas UI under the Triggers tab.
Choose the correct trigger type and event to match your use case.
Always enable your trigger to make it active.
Write your trigger function in JavaScript to handle the event data.
Double-check database and collection names to ensure the trigger fires.