Skip to content

MongoDB Compatibility Matrix

MongoDB Compatibility Matrix

Comprehensive compatibility reference for HeliosDB’s MongoDB wire protocol implementation.

Overall Compatibility

CategoryCoverageStatus
Wire Protocol (OP_MSG)100%Complete
BSON Types100%Complete
CRUD Operations100%Complete
Aggregation Pipeline100%Complete (MongoDB 8.0)
Transactions100%Complete
Change Streams100%Complete

Wire Protocol

Message Types

MessageStatusNotes
OP_MSGSupportedModern protocol
OP_QUERYSupportedLegacy, converted to OP_MSG
OP_INSERTSupportedLegacy
OP_UPDATESupportedLegacy
OP_DELETESupportedLegacy
OP_GET_MORESupportedCursor continuation
OP_KILL_CURSORSSupportedCursor cleanup

OP_MSG Sections

SectionStatusNotes
Kind 0 (Body)SupportedSingle document
Kind 1 (Sequence)SupportedDocument sequence
ChecksumSupportedCRC32C

BSON Types

TypeCodeStatusNotes
Double0x01SupportedFull precision
String0x02SupportedUTF-8 encoded
Document0x03SupportedNested documents
Array0x04SupportedBSON arrays
Binary0x05SupportedAll subtypes
Undefined0x06SupportedDeprecated
ObjectId0x07Supported12-byte identifier
Boolean0x08Supportedtrue/false
DateTime0x09SupportedUTC milliseconds
Null0x0ASupportednull value
Regex0x0BSupportedPatterns + options
DBPointer0x0CSupportedDeprecated
JavaScript0x0DSupportedCode string
Symbol0x0ESupportedDeprecated
JavaScript w/scope0x0FSupportedCode with scope
Int320x10Supported32-bit integer
Timestamp0x11SupportedMongoDB timestamp
Int640x12Supported64-bit integer
Decimal1280x13SupportedHigh-precision
MinKey0xFFSupportedComparison
MaxKey0x7FSupportedComparison

CRUD Operations

Insert

OperationStatusNotes
insertOneSupportedSingle document
insertManySupportedBatch insert
orderedSupportedStop on error
unorderedSupportedContinue on error
writeConcernSupportedAll options

Find

OperationStatusNotes
findSupportedQuery documents
findOneSupportedSingle document
projectionSupportedField selection
sortSupportedMulti-field sort
skipSupportedPagination
limitSupportedResult limit
hintSupportedIndex hint
explainSupportedQuery explain
allowDiskUseSupportedLarge sorts

Update

OperationStatusNotes
updateOneSupportedSingle document
updateManySupportedMultiple documents
replaceOneSupportedDocument replacement
upsertSupportedInsert if not exists
arrayFiltersSupportedArray updates

Delete

OperationStatusNotes
deleteOneSupportedSingle document
deleteManySupportedMultiple documents
writeConcernSupportedAll options

Query Operators

Comparison

OperatorStatusDescription
$eqSupportedEqual
$neSupportedNot equal
$gtSupportedGreater than
$gteSupportedGreater or equal
$ltSupportedLess than
$lteSupportedLess or equal
$inSupportedIn array
$ninSupportedNot in array

Logical

OperatorStatusDescription
$andSupportedLogical AND
$orSupportedLogical OR
$notSupportedLogical NOT
$norSupportedLogical NOR

Element

OperatorStatusDescription
$existsSupportedField exists
$typeSupportedBSON type check

Evaluation

OperatorStatusDescription
$regexSupportedRegular expression
$textSupportedText search
$whereSupportedJavaScript expression
$exprSupportedAggregation expression
$modSupportedModulo
$jsonSchemaSupportedJSON schema validation

Array

OperatorStatusDescription
$allSupportedContains all
$elemMatchSupportedElement matches
$sizeSupportedArray size

Bitwise

OperatorStatusDescription
$bitsAllClearSupportedAll bits clear
$bitsAllSetSupportedAll bits set
$bitsAnyClearSupportedAny bit clear
$bitsAnySetSupportedAny bit set

Geospatial

OperatorStatusDescription
$geoWithinSupportedWithin geometry
$geoIntersectsSupportedIntersects geometry
$nearSupportedNear point
$nearSphereSupportedNear point (sphere)

Update Operators

Field

OperatorStatusDescription
$setSupportedSet field value
$setOnInsertSupportedSet on insert only
$unsetSupportedRemove field
$renameSupportedRename field
$incSupportedIncrement
$mulSupportedMultiply
$minSupportedUpdate if less
$maxSupportedUpdate if greater
$currentDateSupportedSet current date

Array

OperatorStatusDescription
$pushSupportedAdd to array
$addToSetSupportedAdd unique
$popSupportedRemove first/last
$pullSupportedRemove matching
$pullAllSupportedRemove all matching
$SupportedPositional update
$[]SupportedAll elements
$[]SupportedFiltered positional
$eachSupportedMultiple values
$positionSupportedInsert position
$sliceSupportedLimit array size
$sortSupportedSort array

Bitwise

OperatorStatusDescription
$bitSupportedBitwise operations

Aggregation Pipeline

Basic Stages

StageStatusDescription
$matchSupportedFilter documents
$projectSupportedReshape documents
$addFieldsSupportedAdd fields
$setSupportedAlias for $addFields
$unsetSupportedRemove fields
$groupSupportedGroup and aggregate
$sortSupportedSort documents
$limitSupportedLimit results
$skipSupportedSkip documents
$countSupportedCount documents
$outSupportedWrite to collection
$mergeSupportedMerge results

Advanced Stages

StageStatusDescription
$lookupSupportedLeft outer join
$graphLookupSupportedRecursive lookup
$unwindSupportedDeconstruct arrays
$facetSupportedMulti-faceted aggregation
$bucketSupportedBucket by boundaries
$bucketAutoSupportedAuto-bucket
$sortByCountSupportedGroup and count
$sampleSupportedRandom sample
$redactSupportedField-level redaction
$replaceRootSupportedReplace document
$replaceWithSupportedAlias for $replaceRoot

Window Stages (MongoDB 5.0+)

StageStatusDescription
$setWindowFieldsSupportedWindow functions
$densifySupportedFill gaps
$fillSupportedFill nulls

Union Stages

StageStatusDescription
$unionWithSupportedUnion collections

Accumulator Operators

OperatorStatusDescription
$sumSupportedSum values
$avgSupportedAverage
$minSupportedMinimum
$maxSupportedMaximum
$firstSupportedFirst value
$lastSupportedLast value
$pushSupportedArray of values
$addToSetSupportedUnique values
$stdDevPopSupportedPopulation std dev
$stdDevSampSupportedSample std dev
$countSupportedCount

Transactions

FeatureStatusNotes
startSessionSupportedSession management
startTransactionSupportedBegin transaction
commitTransactionSupportedCommit changes
abortTransactionSupportedRollback changes
Read ConcernSupportedlocal, majority, snapshot
Write ConcernSupportedAll levels
IsolationSupportedSERIALIZABLE

Change Streams

FeatureStatusNotes
watch()SupportedCollection/database/cluster
Pipeline filterSupportedAggregation stages
Resume tokenSupportedResume after disconnect
Full documentSupportedInclude full document
Update descriptionSupportedChanged fields

Operation Types

TypeStatus
insertSupported
updateSupported
replaceSupported
deleteSupported
dropSupported
renameSupported
dropDatabaseSupported
invalidateSupported

Indexes

TypeStatusNotes
Single fieldSupportedStandard index
CompoundSupportedMultiple fields
UniqueSupportedEnforce uniqueness
SparseSupportedSkip null values
TTLSupportedExpiring documents
TextSupportedFull-text search
2dsphereSupportedGeospatial
2dSupportedPlanar geometry
HashedSupportedHash-based
WildcardSupportedDynamic fields

Authentication

MethodStatusNotes
SCRAM-SHA-1SupportedLegacy
SCRAM-SHA-256SupportedRecommended
MONGODB-X509SupportedCertificate-based
MONGODB-AWSPartialAWS IAM
PLAINSupportedLDAP

Known Limitations

Not Supported

FeatureReason
GridFSUse blob storage
Capped collectionsUse TTL indexes
Server-side JavaScriptSecurity concern
Map-reduceUse aggregation

Behavioral Differences

  1. Storage: Documents stored as JSONB internally
  2. Indexes: Translated to HeliosDB index types
  3. Sharding: Uses HeliosDB’s sharding

Related: README.md | CONFIGURATION.md | EXAMPLES.md

Last Updated: December 2025