MongoDB Compatibility Matrix
Comprehensive compatibility reference for HeliosDB’s MongoDB wire protocol implementation.
Overall Compatibility
| Category | Coverage | Status |
|---|
| Wire Protocol (OP_MSG) | 100% | Complete |
| BSON Types | 100% | Complete |
| CRUD Operations | 100% | Complete |
| Aggregation Pipeline | 100% | Complete (MongoDB 8.0) |
| Transactions | 100% | Complete |
| Change Streams | 100% | Complete |
Wire Protocol
Message Types
| Message | Status | Notes |
|---|
| OP_MSG | Supported | Modern protocol |
| OP_QUERY | Supported | Legacy, converted to OP_MSG |
| OP_INSERT | Supported | Legacy |
| OP_UPDATE | Supported | Legacy |
| OP_DELETE | Supported | Legacy |
| OP_GET_MORE | Supported | Cursor continuation |
| OP_KILL_CURSORS | Supported | Cursor cleanup |
OP_MSG Sections
| Section | Status | Notes |
|---|
| Kind 0 (Body) | Supported | Single document |
| Kind 1 (Sequence) | Supported | Document sequence |
| Checksum | Supported | CRC32C |
BSON Types
| Type | Code | Status | Notes |
|---|
| Double | 0x01 | Supported | Full precision |
| String | 0x02 | Supported | UTF-8 encoded |
| Document | 0x03 | Supported | Nested documents |
| Array | 0x04 | Supported | BSON arrays |
| Binary | 0x05 | Supported | All subtypes |
| Undefined | 0x06 | Supported | Deprecated |
| ObjectId | 0x07 | Supported | 12-byte identifier |
| Boolean | 0x08 | Supported | true/false |
| DateTime | 0x09 | Supported | UTC milliseconds |
| Null | 0x0A | Supported | null value |
| Regex | 0x0B | Supported | Patterns + options |
| DBPointer | 0x0C | Supported | Deprecated |
| JavaScript | 0x0D | Supported | Code string |
| Symbol | 0x0E | Supported | Deprecated |
| JavaScript w/scope | 0x0F | Supported | Code with scope |
| Int32 | 0x10 | Supported | 32-bit integer |
| Timestamp | 0x11 | Supported | MongoDB timestamp |
| Int64 | 0x12 | Supported | 64-bit integer |
| Decimal128 | 0x13 | Supported | High-precision |
| MinKey | 0xFF | Supported | Comparison |
| MaxKey | 0x7F | Supported | Comparison |
CRUD Operations
Insert
| Operation | Status | Notes |
|---|
| insertOne | Supported | Single document |
| insertMany | Supported | Batch insert |
| ordered | Supported | Stop on error |
| unordered | Supported | Continue on error |
| writeConcern | Supported | All options |
Find
| Operation | Status | Notes |
|---|
| find | Supported | Query documents |
| findOne | Supported | Single document |
| projection | Supported | Field selection |
| sort | Supported | Multi-field sort |
| skip | Supported | Pagination |
| limit | Supported | Result limit |
| hint | Supported | Index hint |
| explain | Supported | Query explain |
| allowDiskUse | Supported | Large sorts |
Update
| Operation | Status | Notes |
|---|
| updateOne | Supported | Single document |
| updateMany | Supported | Multiple documents |
| replaceOne | Supported | Document replacement |
| upsert | Supported | Insert if not exists |
| arrayFilters | Supported | Array updates |
Delete
| Operation | Status | Notes |
|---|
| deleteOne | Supported | Single document |
| deleteMany | Supported | Multiple documents |
| writeConcern | Supported | All options |
Query Operators
Comparison
| Operator | Status | Description |
|---|
| $eq | Supported | Equal |
| $ne | Supported | Not equal |
| $gt | Supported | Greater than |
| $gte | Supported | Greater or equal |
| $lt | Supported | Less than |
| $lte | Supported | Less or equal |
| $in | Supported | In array |
| $nin | Supported | Not in array |
Logical
| Operator | Status | Description |
|---|
| $and | Supported | Logical AND |
| $or | Supported | Logical OR |
| $not | Supported | Logical NOT |
| $nor | Supported | Logical NOR |
Element
| Operator | Status | Description |
|---|
| $exists | Supported | Field exists |
| $type | Supported | BSON type check |
Evaluation
| Operator | Status | Description |
|---|
| $regex | Supported | Regular expression |
| $text | Supported | Text search |
| $where | Supported | JavaScript expression |
| $expr | Supported | Aggregation expression |
| $mod | Supported | Modulo |
| $jsonSchema | Supported | JSON schema validation |
Array
| Operator | Status | Description |
|---|
| $all | Supported | Contains all |
| $elemMatch | Supported | Element matches |
| $size | Supported | Array size |
Bitwise
| Operator | Status | Description |
|---|
| $bitsAllClear | Supported | All bits clear |
| $bitsAllSet | Supported | All bits set |
| $bitsAnyClear | Supported | Any bit clear |
| $bitsAnySet | Supported | Any bit set |
Geospatial
| Operator | Status | Description |
|---|
| $geoWithin | Supported | Within geometry |
| $geoIntersects | Supported | Intersects geometry |
| $near | Supported | Near point |
| $nearSphere | Supported | Near point (sphere) |
Update Operators
Field
| Operator | Status | Description |
|---|
| $set | Supported | Set field value |
| $setOnInsert | Supported | Set on insert only |
| $unset | Supported | Remove field |
| $rename | Supported | Rename field |
| $inc | Supported | Increment |
| $mul | Supported | Multiply |
| $min | Supported | Update if less |
| $max | Supported | Update if greater |
| $currentDate | Supported | Set current date |
Array
| Operator | Status | Description |
|---|
| $push | Supported | Add to array |
| $addToSet | Supported | Add unique |
| $pop | Supported | Remove first/last |
| $pull | Supported | Remove matching |
| $pullAll | Supported | Remove all matching |
| $ | Supported | Positional update |
| $[] | Supported | All elements |
| $[] | Supported | Filtered positional |
| $each | Supported | Multiple values |
| $position | Supported | Insert position |
| $slice | Supported | Limit array size |
| $sort | Supported | Sort array |
Bitwise
| Operator | Status | Description |
|---|
| $bit | Supported | Bitwise operations |
Aggregation Pipeline
Basic Stages
| Stage | Status | Description |
|---|
| $match | Supported | Filter documents |
| $project | Supported | Reshape documents |
| $addFields | Supported | Add fields |
| $set | Supported | Alias for $addFields |
| $unset | Supported | Remove fields |
| $group | Supported | Group and aggregate |
| $sort | Supported | Sort documents |
| $limit | Supported | Limit results |
| $skip | Supported | Skip documents |
| $count | Supported | Count documents |
| $out | Supported | Write to collection |
| $merge | Supported | Merge results |
Advanced Stages
| Stage | Status | Description |
|---|
| $lookup | Supported | Left outer join |
| $graphLookup | Supported | Recursive lookup |
| $unwind | Supported | Deconstruct arrays |
| $facet | Supported | Multi-faceted aggregation |
| $bucket | Supported | Bucket by boundaries |
| $bucketAuto | Supported | Auto-bucket |
| $sortByCount | Supported | Group and count |
| $sample | Supported | Random sample |
| $redact | Supported | Field-level redaction |
| $replaceRoot | Supported | Replace document |
| $replaceWith | Supported | Alias for $replaceRoot |
Window Stages (MongoDB 5.0+)
| Stage | Status | Description |
|---|
| $setWindowFields | Supported | Window functions |
| $densify | Supported | Fill gaps |
| $fill | Supported | Fill nulls |
Union Stages
| Stage | Status | Description |
|---|
| $unionWith | Supported | Union collections |
Accumulator Operators
| Operator | Status | Description |
|---|
| $sum | Supported | Sum values |
| $avg | Supported | Average |
| $min | Supported | Minimum |
| $max | Supported | Maximum |
| $first | Supported | First value |
| $last | Supported | Last value |
| $push | Supported | Array of values |
| $addToSet | Supported | Unique values |
| $stdDevPop | Supported | Population std dev |
| $stdDevSamp | Supported | Sample std dev |
| $count | Supported | Count |
Transactions
| Feature | Status | Notes |
|---|
| startSession | Supported | Session management |
| startTransaction | Supported | Begin transaction |
| commitTransaction | Supported | Commit changes |
| abortTransaction | Supported | Rollback changes |
| Read Concern | Supported | local, majority, snapshot |
| Write Concern | Supported | All levels |
| Isolation | Supported | SERIALIZABLE |
Change Streams
| Feature | Status | Notes |
|---|
| watch() | Supported | Collection/database/cluster |
| Pipeline filter | Supported | Aggregation stages |
| Resume token | Supported | Resume after disconnect |
| Full document | Supported | Include full document |
| Update description | Supported | Changed fields |
Operation Types
| Type | Status |
|---|
| insert | Supported |
| update | Supported |
| replace | Supported |
| delete | Supported |
| drop | Supported |
| rename | Supported |
| dropDatabase | Supported |
| invalidate | Supported |
Indexes
| Type | Status | Notes |
|---|
| Single field | Supported | Standard index |
| Compound | Supported | Multiple fields |
| Unique | Supported | Enforce uniqueness |
| Sparse | Supported | Skip null values |
| TTL | Supported | Expiring documents |
| Text | Supported | Full-text search |
| 2dsphere | Supported | Geospatial |
| 2d | Supported | Planar geometry |
| Hashed | Supported | Hash-based |
| Wildcard | Supported | Dynamic fields |
Authentication
| Method | Status | Notes |
|---|
| SCRAM-SHA-1 | Supported | Legacy |
| SCRAM-SHA-256 | Supported | Recommended |
| MONGODB-X509 | Supported | Certificate-based |
| MONGODB-AWS | Partial | AWS IAM |
| PLAIN | Supported | LDAP |
Known Limitations
Not Supported
| Feature | Reason |
|---|
| GridFS | Use blob storage |
| Capped collections | Use TTL indexes |
| Server-side JavaScript | Security concern |
| Map-reduce | Use aggregation |
Behavioral Differences
- Storage: Documents stored as JSONB internally
- Indexes: Translated to HeliosDB index types
- Sharding: Uses HeliosDB’s sharding
Related: README.md | CONFIGURATION.md | EXAMPLES.md
Last Updated: December 2025