PolyGres
← Back to the PolyWire overview
MongoDB → PostgreSQL. No driver change.
Your MongoDB application thinks it's talking to MongoDB. It's actually talking to
Postgres — and it never finds out. mongosh and
mongodb-driver-sync connect over the real MongoDB wire protocol; PolyWire
executes every operation against a real PostgreSQL database on the other end.
How it works#
See it happen#
$ mongosh mongodb://localhost:27017
test> db.orders.find()
[
{ _id: 1001, customer_id: 42, amount: 129.99 },
{ _id: 1002, customer_id: 57, amount: 89.50 }
]
test>
MongoDB client. MongoDB wire protocol. PostgreSQL database. No client rewrite. Document contents above are illustrative — the operation and path are exactly real. See PolyWire capabilities for exact client-by-client coverage.
Try it in 60 seconds#
1. Start PolyWire — point it at a Postgres you already have:
docker run -p 27017:27017 \
-e POLYWIRE_HOST=<host> -e POLYWIRE_PASSWORD=<password> \
ghcr.io/polygres26/polywire:latest2. Connect — same mongosh you already use:
mongosh mongodb://localhost:270173. Done — mongosh → MongoWire → PolyWire → PostgreSQL. No driver change.
Pointing at a specific managed Postgres instead — Amazon RDS, Google Cloud SQL, Azure Database for PostgreSQL, or Oracle OCI? See CONNECTING.md for the real provider-specific setup.
Why teams do this#
Modernize without a rewrite
Move off a standalone MongoDB deployment without touching every application that talks to it — the driver and the queries your app already sends both keep working.
Standardize on Postgres
Consolidate MongoDB, Oracle, MySQL, SQL Server, and more onto one real Postgres database, without every team rewriting its data layer first.
Keep governance in one place
The same SQL firewall, QoS, and audit path that governs every other protocol also governs this one — not a separate, unguarded route to your data.
Compatibility, honestly scoped#
| Protocol | Client tested against | Bound parameters decoded | Native error translation | RLS identity |
|---|---|---|---|---|
| MongoDB | mongodb-driver-sync, mongosh | Hash by _id | ✓ (code/codeName) | — |
Ready to put PolyWire in front of Postgres?
Try it free — Developer Edition, all features. Taking it to production? Bring your architecture and we'll help map the deployment.