Metabase API connection

Hello, I'm trying to make Metabase connect to my mongo data but via an endpoint. It's basically me doing custom data transformation before it reaching Metabase. How can I implement that without necessarily duplicating the database with the transformations?

Is your endpoint compatible with the mongo protocol?

You may need to create a custom endpoint for this

  1. Create a new endpoint that will perform the custom data transformation. This endpoint can be a simple Node.js script or a more complex application.
  2. In the endpoint, connect to your MongoDB database and perform the desired data transformation. The transformation can be anything from simple filtering and aggregation to complex machine learning algorithms.
  3. Once the data transformation is complete, return the transformed data from the endpoint.
  4. In Metabase, create a new database connection that points to the endpoint.
  5. When you query the database in Metabase, the transformed data will be returned.

Here is an example of a simple Node.js script that you can use to create an endpoint for custom data transformation:

`const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');

// Connection URL
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'myproject';

// Connect to the database
const client = new MongoClient(url);
client.connect((err) => {
if (err) {
throw err;

// Get the collection
const collection = client.db(dbName).collection('mycollection');

// Perform the data transformation
const results = collection.find().toArray();

// Return the transformed data


This script will connect to the MongoDB database at localhost:27017 and get the collection mycollection. The script will then perform a simple transformation on the data in the collection, returning the transformed data.

You can then use this endpoint as a data source in Metabase. To do this, follow these steps:

  1. In Metabase, go to Admin > Databases.
  2. Click the Add database button.
  3. Select MongoDB from the list of data sources.
  4. In the Connection URL field, enter the URL of your endpoint.
  5. In the Database Name field, enter the name of the database that your endpoint is connected to.
  6. Click the Save button.