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.
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() )
Search millions of rows in ~100–300ms using MongoDB text indexes.
Phrase matching, regex, colon syntax like year:>1990, and optional stemming — search "city," find "cities."
Independent per-column search with range queries — filter years with 1990|2000.
Full DataTables Editor support — create, edit, delete with validation, hooks, and file uploads.
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.