Keep MongoDB when your application reads and writes through MongoDB drivers: MongoDB wire compatibility for HeliosDB Full is planned. Choose HeliosDB Full when you are ready to move documents into JSONB columns and query them over the PostgreSQL, MySQL or Oracle wire protocol, with HTTP vector stores in the same licensed engine; time travel, branching and SQL vector indexes for HeliosDB Full are planned.

MongoDB pioneered the document database, and its 2018 relicensing to SSPL sent part of the ecosystem looking for alternatives: AWS built DocumentDB and FerretDB built a protocol translator. HeliosDB Full is a SQL engine, and MongoDB wire compatibility is planned for it (Planned in the Release and Capability Matrix), and so are GridFS and capped collections (compatibility notes). What works today is the SQL path: store documents as JSONB rows and query them from PostgreSQL, MySQL or Oracle clients. HeliosDB Full is itself source-available under SSPL-1.0 and distributed to licensed customers, so it is not a way to leave SSPL behind.


Quick Comparison

Feature MongoDB 7 HeliosDB Full
LicenseSSPLSSPL-1.0 (commercial license available)
MongoDB wire protocolNative OP_MSGPlanned
Document queriesfind and aggregation pipelines (35+ stages)SQL over JSONB (WHERE, GROUP BY, JOIN, window functions, CTEs); pipelines over the MongoDB protocol planned
ACID transactionsMulti-documentMulti-statement SQL transactions with MVCC
Vector searchAtlas-only ($vectorSearch)Self-hosted HNSW vector stores with hybrid search over the HTTP gateway; SQL vector indexes with Product Quantization planned
NL queriesNot availablePlanned (NL-to-SQL)
Intelligent indexingAtlas Performance Advisor (paid)Planned
Schema optimizationManual validation rulesPlanned
Change streamsYesPlanned
GridFSYesNot supported; planned
Capped collectionsYesNot supported; planned
AuthenticationSCRAM-SHA-256 / x.509SCRAM-SHA-256 for PostgreSQL clients
SQL accessNot availablePostgreSQL, MySQL and Oracle wire protocols and an HTTP SQL gateway
Full-text search$text / Atlas SearchNative @@ operator in SQL
Time-travel queriesNot availablePlanned (the current release accepts AS OF but does not read historical snapshots)
Data branchingNot availablePlanned (the current release accepts the syntax but does not create branches)
Encryption at restEncrypted Storage Engine (Enterprise)Planned (with key rotation and cloud KMS)
TLS on the listenerYesNot terminated by the listeners today; use a TLS proxy (native PostgreSQL TLS planned)
Deploymentmongod + mongos + config serversSingle server, provided during onboarding; clustering planned
Minimum HA3 nodes (replica set)Replication and clustering planned
Other protocolsMongoDB onlyPostgreSQL, MySQL and Oracle on the shared tables, Redis and an HTTP gateway; Cassandra and SQL Server planned
Anomaly detectionAtlas alerts (threshold)Planned (in-database anomaly detection)
Production costAtlas M30: $370/monthAnnual license, custom-priced (pricing)

How does HeliosDB Full differ from FerretDB?

FerretDB translates the MongoDB wire protocol into SQL on PostgreSQL or SQLite. HeliosDB Full is a SQL engine with HTTP vector stores and PostgreSQL, MySQL and Oracle listeners; MongoDB wire compatibility, including reading and writing documents, aggregation pipelines, change streams, GridFS and capped collections, is planned (compatibility notes). If you are moving the data into SQL anyway, HeliosDB Full serves it over the PostgreSQL, MySQL and Oracle listeners and keeps embeddings in HTTP vector stores; SQL vector indexes, time travel and branching for HeliosDB Full are planned.

FerretDB Architecture:
+------------------+     +------------------+
| MongoDB Client   |---->|    FerretDB      |---> PostgreSQL / SQLite
| (mongosh, etc.)  |     | (protocol proxy) |     (external dependency)
+------------------+     +------------------+


HeliosDB Full Architecture (today):
+------------------+     +---------------------------------------------+
| MongoDB Client   |- - >|              HeliosDB Full                   |
| (mongosh, etc.)  |     |                                             |
+------------------+     |  MongoDB wire compatibility: planned         |
                         |    (document reads and writes, pipelines,    |
                         |    GridFS and capped collections)            |
+------------------+     |                                             |
| SQL Client       |---->|  PostgreSQL / MySQL / Oracle listeners       |
| (psql, JDBC ...) |     |    Read and write the shared tables          |
+------------------+     |                                             |
                         |  SQL Core Engine                             |
                         |    JSONB documents in tables                 |
                         |    HTTP vector stores (HNSW, hybrid search)  |
                         |    MVCC + ACID transactions                  |
                         |    LSM storage (no external DB)              |
                         +---------------------------------------------+
Capability FerretDB HeliosDB Full
ApproachProtocol translator (proxy to external DB)SQL engine; MongoDB wire compatibility planned
External database requiredYes (PostgreSQL or SQLite)No (built-in LSM storage)
Document reads and writes over the MongoDB protocolYesPlanned
Aggregation stages~10 basic stagesPlanned over the MongoDB protocol; SQL equivalents today
Change streamsNot availablePlanned
GridFSPartialNot supported; planned
Vector searchNot availableHNSW vector stores over the HTTP gateway; SQL vector indexes planned
SQL accessBackend-dependentPostgreSQL, MySQL and Oracle wire protocols
Multi-protocolMongoDB onlyPostgreSQL, MySQL and Oracle on the shared tables; Redis; HTTP gateway; MongoDB, Cassandra and SQL Server planned

Where do HeliosDB Full's AI features run?

On the HTTP gateway: HeliosDB Full serves vector stores with hybrid search, embeddings, chat completions and agent memory there; SQL vector indexes with Product Quantization, NL-to-SQL and in-database model training are planned. Their MongoDB-protocol forms, such as $vectorSearch inside an aggregation pipeline, depend on MongoDB wire compatibility, which is planned too. Load documents over SQL and keep their embeddings in a vector store (compatibility notes).

Vector Search

MongoDB Atlas offers vector search in the cloud, through Atlas Search. HeliosDB Full serves self-hosted HNSW vector stores with hybrid search over its HTTP gateway (POST /api/v1/vectors/stores/{store}/search/hybrid); vector search in SQL and through $vectorSearch over the MongoDB protocol are planned.

// MongoDB Atlas: $vectorSearch (cloud-only, requires Atlas)
db.products.aggregate([
    {
        $vectorSearch: {
            index: "vector_index",
            path: "embedding",
            queryVector: [0.12, -0.45, 0.89, /* ... */],
            numCandidates: 100,
            limit: 10
        }
    },
    { $project: { name: 1, score: { $meta: "vectorSearchScore" } } }
]);

Can HeliosDB Full run MongoDB aggregation pipelines?

Not over the MongoDB protocol yet: MongoDB wire compatibility for HeliosDB Full, including aggregation pipelines, is planned. Today, write the pipeline as SQL over the PostgreSQL wire; the common stages map directly:

Stage MongoDB 7 HeliosDB Full SQL today
$matchYesWHERE (JSONB containment with @>)
$groupYesGROUP BY + aggregate functions
$sortYesORDER BY
$project / $addFieldsYesSELECT list and computed columns
$limit / $skipYesLIMIT / OFFSET
$unwindYesjsonb_array_elements() or UNNEST()
$lookup (joins)YesJOIN
$countYesCOUNT(*)
$facetYesOne query per facet, or CTEs
$setWindowFieldsYesWindow functions (OVER (PARTITION BY ...))
$vectorSearchAtlas-onlyHybrid search on the HTTP vector-store API; SQL vector search planned

Code Examples

Documents as JSONB, Queried over PostgreSQL

-- psql -h heliosdb-host -p 5432 -d mydb
CREATE TABLE users (
    id  TEXT PRIMARY KEY,
    doc JSONB NOT NULL
);

INSERT INTO users (id, doc) VALUES
    ('u1', '{"name": "Alice", "age": 30, "dept": "Engineering", "tags": ["admin", "dev"]}'),
    ('u2', '{"name": "Bob", "age": 25, "dept": "Marketing", "tags": ["viewer"]}'),
    ('u3', '{"name": "Carol", "age": 35, "dept": "Engineering", "tags": ["admin"]}');

-- MongoDB: db.users.find({ dept: "Engineering" }).sort({ age: -1 })
SELECT doc->>'name' AS name, (doc->>'age')::int AS age
FROM users
WHERE doc @> '{"dept": "Engineering"}'
ORDER BY age DESC;

An Aggregation Pipeline, Rewritten as SQL

// MongoDB: multi-stage pipeline with $facet
db.orders.aggregate([
    { $match: { date: { $gte: ISODate("2026-01-01") } } },
    {
        $facet: {
            byDepartment: [
                { $group: { _id: "$department", revenue: { $sum: "$total" } } },
                { $sort: { revenue: -1 } }
            ],
            topCustomers: [
                { $group: { _id: "$customer_id", spent: { $sum: "$total" } } },
                { $sort: { spent: -1 } },
                { $limit: 10 },
                { $lookup: {
                    from: "customers",
                    localField: "_id",
                    foreignField: "_id",
                    as: "customer"
                }},
                { $unwind: "$customer" },
                { $project: { name: "$customer.name", spent: 1 } }
            ]
        }
    }
]);
-- HeliosDB Full: one query per facet, over the PostgreSQL wire

-- byDepartment
SELECT doc->>'department' AS department,
       SUM((doc->>'total')::numeric) AS revenue
FROM orders
WHERE (doc->>'date')::timestamptz >= '2026-01-01'
GROUP BY 1
ORDER BY revenue DESC;

-- topCustomers: $group + $lookup + $unwind become GROUP BY + JOIN
SELECT c.doc->>'name' AS name, t.spent
FROM (
    SELECT doc->>'customer_id' AS customer_id,
           SUM((doc->>'total')::numeric) AS spent
    FROM orders
    WHERE (doc->>'date')::timestamptz >= '2026-01-01'
    GROUP BY 1
    ORDER BY spent DESC
    LIMIT 10
) t
JOIN customers c ON c.id = t.customer_id
ORDER BY t.spent DESC;

Vector Search (RAG Retrieval)

Keep the documents in tables and their embeddings in an HTTP vector store, then retrieve with POST /api/v1/vectors/stores/{store}/search/hybrid. Vector columns and HNSW indexes in SQL are planned for HeliosDB Full.

Transactions

MongoDB session transactions are planned with MongoDB wire compatibility. In SQL, one multi-statement transaction covers the same transfer:

BEGIN;
UPDATE accounts SET balance = balance - 500 WHERE name = 'Alice';
UPDATE accounts SET balance = balance + 500 WHERE name = 'Bob';
INSERT INTO transfers (from_name, to_name, amount, created_at)
VALUES ('Alice', 'Bob', 500, NOW());
COMMIT;

When to Choose Each

Choose MongoDB When

  • Your application talks to the database through MongoDB drivers --- MongoDB wire compatibility for HeliosDB Full, including reading and writing documents, aggregation pipelines, change streams, GridFS and capped collections, is planned.
  • Mature ecosystem matters most --- MongoDB has 15+ years of drivers, tools, tutorials, and community. If your team knows MongoDB deeply and needs the broadest third-party integration, MongoDB is the safe bet.
  • MongoDB Atlas is acceptable --- If you are already on Atlas and comfortable with the pricing and vendor relationship, Atlas provides a polished managed experience with built-in monitoring, backups, and Atlas Search.
  • Sharded cluster at massive scale --- MongoDB's sharding implementation (config servers + mongos) has run at multi-terabyte scale in production for years.
  • Client-side field-level encryption --- If you need CSFLE with automatic encryption/decryption in the driver, MongoDB has this today.

Choose HeliosDB When

  • AI/RAG is a core requirement --- HeliosDB Full serves vector stores with hybrid search, embeddings and agent memory over its HTTP gateway, self-hosted; NL-to-SQL, intelligent indexing and anomaly detection are planned.
  • Self-hosted vector search --- MongoDB vector search requires Atlas (cloud-only). HeliosDB Full runs HNSW vector stores on your own infrastructure, behind its HTTP gateway.
  • You are moving documents into SQL --- Store them as JSONB rows and query them with joins, window functions and CTEs from PostgreSQL, MySQL or Oracle clients; a data scientist uses psql while the application uses a PostgreSQL driver.
  • Annual licensing --- HeliosDB Full is custom-priced on an annual contract (see pricing) rather than metered by usage.

When HeliosDB is not the right fit

These limits apply to HeliosDB Full, the edition this page compares. If you are looking at the embedded HeliosDB Nano instead, note that in the stock Nano server, row-level security is enforced through the embedded API and the REPL; SQL CREATE POLICY and enforcement for REST and wire clients are planned (Nano deployment modes).

  • Your application reads or writes through MongoDB drivers. MongoDB wire compatibility for HeliosDB Full is Planned in the Release and Capability Matrix, so MongoDB drivers cannot read or write HeliosDB tables today. Compatibility notes
  • You use GridFS, capped collections, server-side JavaScript or map-reduce. GridFS and capped collections are not supported and are planned; server-side JavaScript and map-reduce are not supported. MongoDB compatibility matrix
  • You need a multi-node cluster today. HeliosDB Full runs as a single server today; Raft clustering, multi-region replication and sharding are planned. HeliosDB Full
  • You need TLS on the database listeners. HeliosDB Full listeners do not terminate TLS today; put a TLS-terminating proxy in front. Native PostgreSQL TLS (with post-quantum key exchange preferred) is planned. Protocol hub
  • You need a permissive or free licence. MongoDB wire compatibility is planned for HeliosDB Full, and Full is SSPL-1.0 under an annual commercial license. Full FAQ: licensing · Pricing
  • You depend on MongoDB storage behaviour. Documents become JSONB rows and MongoDB indexes become HeliosDB index types, so query plans and edge cases differ. Behavioral differences

Migration Path

Moving from MongoDB to HeliosDB Full today is a move to SQL: export the collections, load them as JSONB rows over the PostgreSQL wire protocol, then rewrite driver calls as SQL. The MongoDB migration guide covers schema choices and import scripts. Pointing MongoDB drivers at HeliosDB Full becomes an option once MongoDB wire compatibility ships (compatibility notes).

Step 1: Export from MongoDB

# Export each collection as a JSON array
mongoexport --uri="mongodb://mongodb-host:27017/mydb" \
  --collection=users --out=users.json --jsonArray

Step 2: Load the Documents as JSONB over the PostgreSQL Wire

import json
import psycopg2

conn = psycopg2.connect("host=heliosdb-host port=5432 dbname=mydb user=app")
cur = conn.cursor()
cur.execute("""
    CREATE TABLE IF NOT EXISTS users (
        mongo_id TEXT PRIMARY KEY,
        doc      JSONB NOT NULL
    )
""")

with open("users.json", encoding="utf-8") as f:
    for doc in json.load(f):
        raw_id = doc.pop("_id")
        mongo_id = raw_id.get("$oid", "") if isinstance(raw_id, dict) else str(raw_id)
        cur.execute(
            "INSERT INTO users (mongo_id, doc) VALUES (%s, %s::jsonb)",
            (mongo_id, json.dumps(doc)),
        )

conn.commit()

Step 3: Verify Against the Source

-- Compare with db.users.countDocuments() on MongoDB
SELECT COUNT(*) FROM users;

-- Compare with db.users.aggregate([{ $group: { _id: "$status", count: { $sum: 1 } } }])
SELECT doc->>'status' AS status, COUNT(*)
FROM users
GROUP BY 1;

Step 4: Rewrite Driver Calls as SQL, Then Add Vector Search (Optional)

Replace find, insert, update and aggregate calls with SQL through a PostgreSQL driver, using the stage mapping above. For vector search, keep embeddings in an HTTP vector store and query it with POST /api/v1/vectors/stores/{store}/search/hybrid; vector indexes in SQL are planned for HeliosDB Full.


Pricing Comparison

Tier MongoDB Atlas HeliosDB
Free tierM0: 512MB, shared, no vector searchNone for Full (HeliosDB Nano is free, Apache 2.0)
DevelopmentM10: $57/month ($684/yr)Annual license, custom-priced
ProductionM30: $370/month ($4,440/yr)Annual license, custom-priced
Production + VectorsM30 + Atlas Search: ~$500/monthVectors included in the license
EnterpriseM50+: $1,000+/monthAnnual license, custom-priced
Managed serviceAtlas metered pricingComing soon (see pricing)
Support$15,000+/year (Enterprise)Through

Summary

Dimension MongoDB 7 FerretDB HeliosDB Full
LicenseSSPLApache-2.0SSPL-1.0
MongoDB wire compatibilityNativeYes (proxy)Planned
Aggregation35+ stages~10 stagesSQL today; MongoDB pipelines planned
Vector searchAtlas-only (cloud)NoHNSW vector stores over HTTP (self-hosted); SQL vector indexes planned
NL queriesNoNoPlanned
Intelligent indexingAtlas Advisor (paid)NoPlanned
SQL accessNoBackend-dependentYes (PostgreSQL, MySQL and Oracle wire)
Change streamsYesNoPlanned
TransactionsMulti-documentBackend-dependentMulti-statement SQL transactions + MVCC
Time-travelNoNoPlanned
EncryptionEnterprise onlyBackend-dependentPlanned
DeploymentMulti-componentProxy + backendLicensed single server (clustering planned)
Best forEstablished MongoDB shopsLicense compliance (minimal)Document data moved into SQL, with HTTP vector stores
Production cost$370+/month (Atlas)$0 + backend costAnnual license (sales)

MongoDB defined the document database category, and FerretDB offers an Apache-2.0 translation layer over PostgreSQL or SQLite. HeliosDB Full makes a different trade: one SSPL-1.0 licensed engine where documents live as JSONB rows next to HTTP vector stores, queried over the PostgreSQL, MySQL or Oracle wire protocol; time travel, branching and SQL vector indexes for HeliosDB Full are planned. MongoDB wire compatibility for it is planned, so check the compatibility notes before you plan a cutover that keeps MongoDB drivers.

Now also: code-graph + graph-RAG + native MCP

HeliosDB Nano, built from source with these features, adds CREATE EXTENSION hdb_code for SQL-callable LSP, the WITH CONTEXT clause for grounded RAG, eight ingestion adapters (incl. Docling-backed PDF / Office / audio / image), an in-process embedder, and a native MCP server reachable from Claude Code, Cursor, Continue, Codex, and Aider. Equivalents for HeliosDB Lite and Full are planned. Learn more →

Ready to try HeliosDB?

HeliosDB Full is licensed through sales under SSPL-1.0. HeliosDB Nano is open source under Apache 2.0 and free to use.

Contact Sales Try HeliosDB Nano