DataTables
for MongoDB

Connect your MongoDB collection to a DataTables front-end with a few lines of Python. Sorting, pagination, and search just work — even on millions of rows.

pip install mongo-datatables
from flask import Flask, request, jsonify
from pymongo import MongoClient
from mongo_datatables import DataTables, DataField

app = Flask(__name__)
db = MongoClient()["mydb"]

data_fields = [
    DataField('title', 'string'),
    DataField('artist', 'string'),
    DataField('year', 'number'),
]

@app.route('/api/data', methods=['POST'])
def data():
    args = request.get_json()
    return jsonify(
        DataTables(db, 'albums', args, data_fields).get_rows()
    )

Fast full-text search

Search millions of rows in ~100–300ms using MongoDB text indexes.

Smart search & stemming

Phrase matching, regex, colon syntax like year:>1990, and optional stemming — search "city," find "cities."

Column filtering & ranges

Independent per-column search with range queries — filter years with 1990|2000.

Inline editing & CRUD

Full DataTables Editor support — create, edit, delete with validation, hooks, and file uploads.

Any Python framework

Pass a PyMongo database and a request body — that's it. Works with Flask, FastAPI, Django, Litestar, Quart, or anything else. Clone a starter template or explore the full-featured demo.

Starter template

Flask

Starter template

FastAPI

Starter template

Django