Polygres

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

MongoDB client mongosh or mongodb-driver-sync — unmodified, same driver you already use
POLYWIRE MongoWire (real MongoDB wire protocol) → Connect · Protect · Control · Accelerate · Observe
PostgreSQL, anywhere RDS · Aurora · Cloud SQL · Azure · OCI · Supabase · On-prem

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>
mongoshMongoWirePolyWirePostgreSQL

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:latest

2. Connect — same mongosh you already use:

mongosh mongodb://localhost:27017

3. 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

ProtocolClient tested againstBound parameters decodedNative error translationRLS identity
MongoDBmongodb-driver-sync, mongoshHash by _id✓ (code/codeName)

Full compatibility matrix, all ten protocols →

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.