All releases

v1.1.0

Transactional collection operations and a simpler Spring property surface.

Highlights

  • 01

    More operations in transactions

    Transactional findOneAnd*, aggregate and ClientSession bulkWrite now use the session overlay, so reads see staged writes and aborts roll back byte-exactly.

    Read the guide →
  • 02

    One declaration property

    spring.mongodb.test.collections now declares default, qualified and database-only names through dot notation.

    Read the guide →
  • 03

    Indexes named for what they are

    spring.mongodb.test.schema-file is now spring.mongodb.test.indexes-file, with mongo-indexes.yml as the convention.

    Read the guide →

Full notes

Breaking changes

  • Removed spring.mongodb.test.databases; spring.mongodb.test.collections now carries default-database, qualified and database-only declarations through dot notation, while annotation attributes remain unchanged.
  • Renamed spring.mongodb.test.schema-file to spring.mongodb.test.indexes-file; the YAML and JSON format is unchanged, and no alias is kept.

Added

  • Added transactional findOneAndUpdate, findOneAndReplace, findOneAndDelete, aggregate including $lookup sources, distinct, and ClientSession bulkWrite, all with session-overlay semantics: reads see the transaction's staged writes, aborts roll back byte-exactly.

Fixed

  • Matched the server-shaped WriteConflict command error (code 112, TransientTransactionError) and the sync driver's client-side id assignment in an ordered bulk failure's getInserts().
  • Whole-codebase audit fixes: passthrough close() honours cleanup=none and refuses remote hosts without an explicit opt-in; mixed-type _id lookups agree across find/count/delete/replace and transactions; large array-index $set is bounded with the server's CannotBackfillArray (code 34); the Spring context holder stamps bindings so executor threads cannot resolve a stale context; and $skip/$limit reject fractional, NaN and infinite arguments.
  • Adversarial A/B sweep (44 new differential scenarios) fixed seven fidelity discrepancies: Decimal128 $inc/$mul and date arithmetic now round ties-to-even instead of throwing; a nested _id field no longer throws; string sort uses UTF-8 binary order, and objects, BinData, timestamps and regexes follow BSON canonical sort order; unknown update operators return the server's FailedToParse (code 9).
  • Spring context initialization releases the store context (and any passthrough driver client) if it fails after opening it.

Security

  • CI security scan installs a official aquasec/trivy:latest container image (signed, always newest) instead of an install script piped from a mutable branch; Maven Central publication now depends on the security scan and the differential matrix.