Breaking Changes & Release Notes¶
This page details major release changes and migration guidance across Meerkat versions.
v3.0.0¶
Key Enhancements & Changes¶
- Ambient Multi-Document Transactions:
Introduced
Meerkat.WithTransactionandMeerkat.WithTransactionAsync. Reads and writes inside transaction callbacks automatically participate in the active session without requiring manual session parameters. - Index Verification at Startup:
Added
Meerkat.EnsureIndexesandMeerkat.EnsureIndexesAsyncto idempotently create and verify attribute indexes upfront. ThrowsIndexVerificationExceptionif an expected index cannot be confirmed. - TTL Indexes:
Added
ExpireAfteron[SingleFieldIndex]supporting human-readable duration strings (e.g.,"30d","12h","15m") and ISO-8601 durations onDateTime/DateTime?properties. - Compound Unique Indexes:
Added
Uniqueproperty to[CompoundIndex]to enforce compound uniqueness across grouped fields. - Soft Delete Support:
Added opt-in soft delete via
[Collection(SoftDelete = true)]. Automatically excludes soft-deleted records from queries, counts, and updates; providesRestore*andHardRemove*for restoring and permanently deleting documents. - Fluent Atomic Partial Updates:
Added fluent
Update,UpdateOne,UpdateMany, andUpdateByFilterbuilders supporting$set,$unset,$push,$pull,$addToSet, and$inc. - Dependency Upgrades:
Upgraded
MongoDB.Driverto 3.12.0 and replacedmongo-url-parserwithciu-parser.
v2.0.0¶
Breaking Changes¶
- MongoDB Driver 3.x Upgrade:
The underlying
MongoDB.Driverwas upgraded to 3.x. - Generic
Schema<TId>Base Class: The non-genericSchemabase class was replaced by the genericSchema<TId>, requiring an explicit ID type parameter on all models and staticMeerkatmethods (e.g.,Meerkat.FindByIdAsync<Student, ObjectId>(id)).