Driver Guide
MongoDB Drivers
Thermocline speaks the MongoDB wire protocol. Connect with any official MongoDB driver - no special SDK needed:
// Node.js
const { MongoClient } = require('mongodb');
const client = new MongoClient('mongodb://localhost:27017');
await client.connect();
const db = client.db('myapp');
const users = await db.collection('users').find({ status: 'active' }).toArray();
# Python
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017')
db = client['myapp']
users = list(db.users.find({'status': 'active'}))
// Go
client, _ := mongo.Connect(ctx, options.Client().ApplyURI("mongodb://localhost:27017"))
coll := client.Database("myapp").Collection("users")
cursor, _ := coll.Find(ctx, bson.M{"status": "active"})
All official MongoDB drivers work: Node.js, Python, Java, Go, Rust, C#, C/C++, Ruby, PHP.
Driver Compatibility
| Driver | Status |
|---|---|
| Node.js / Mongoose | Supported |
| Python / PyMongo / Motor | Supported |
| Java | Supported |
| Go | Supported |
| Rust | Supported |
| C# / .NET | Supported |
| C / C++ | Supported |
| Ruby | Supported |
| PHP | Supported |
Vector Search via Driver
const results = await db.collection('documents').aggregate([
{ $vectorSearch: {
queryVector: [0.1, 0.2, 0.3, 0.4],
path: 'embedding',
numCandidates: 100,
limit: 10,
index: 'vector_idx'
}}
]).toArray();
Time Travel via Driver
const historicalData = await db.collection('orders').find(
{ status: 'shipped' },
{ readConcern: { level: 'snapshot', atClusterTime: Timestamp(1700000000, 0) } }
).toArray();
Source of Truth
- MongoDB compatibility matrix:
docs/COMPATIBILITY.md - Wire protocol:
services/gateway/src/proxy/