Skip to content

Known Limitations

Aryeh Citron edited this page May 12, 2026 · 2 revisions

Known Limitations

Not Simulated

Feature Reason
Authentication / Authorization ReadConcern/WriteConcern/ReadPreference stored but not enforced
Replica set topology Single-node in-memory, no failover/election simulation
Sharding No shard key routing or chunk migration
WiredTiger internals No storage engine simulation, no journaling
RU throttling Not applicable to MongoDB (Cosmos DB concept)
Consistency levels Always strong consistency
Connection pooling Single in-memory instance, no network simulation
Client-Side Field Level Encryption (CSFLE) Requires mongocryptd or crypt_shared native libraries
Queryable Encryption Requires server-side support
mongocryptd / crypt_shared Native binaries, not simulatable in-process
Query plan optimization All queries do full scan; indexes stored but not used for query optimization
Aggregation memory limits No 100MB stage memory limit (unconstrained)
Cursor timeout In-memory cursors never expire from idle

Approximations

Feature Behavior
TTL eviction Lazy — expired documents removed on query, not by background thread
Collation Uses .NET CultureInfo, may differ from ICU on edge cases
Collection/index statistics Synthetic values (not from a real storage engine)
Session tokens Simplified (not opaque like real MongoDB)
Diagnostics Stub implementation
$search / $searchMeta Basic substring search (not Atlas Search)
$vectorSearch Brute-force exact computation (no ANN index)
Geospatial Real geometric calculations via NetTopologySuite

Operations Not Supported

Operation Behavior
MapReduce Throws NotSupportedException (deprecated in MongoDB 5.0+)
Explain() Returns stub { "executionSuccess": true, "nReturned": count }
RetryReads / RetryWrites Accepted but never trigger (no transient network errors)

Command Monitoring / Cluster Events

ClusterConfigurator event subscribers (CommandStartedEvent, CommandSucceededEvent, CommandFailedEvent) are not fired. Production code that registers event handlers via MongoClientSettings.ClusterConfigurator will not receive events. APM/structured logging that depends on command events should be tested against real MongoDB.

Concurrency Notes

  • Multi-document operations are not fully isolated from concurrent direct CRUD
  • Per-document locking prevents lost updates on single-document operations

See Also

Clone this wiki locally