Skip to content

0.14.0 • Start of the Multiplatform driver, the great rename, $nin and $regex

Breaking changes

This version contains a major rename that affects almost everything in the DSL module. To learn more about the reasons we did it, see #35 and !54. Although future versions may still have breakages, this was the last planned major change.

  • Renamed package models to command
  • Renamed package expr to query
  • Moved contents of package expr.common to tree
  • Moved contents of package options to command
  • Moved contents of package options.common to command
  • Renamed FilterOperators to FilterQuery, removed FilterExpression
  • Renamed PredicateOperators to FilterQueryPredicate, removed PredicateExpression
  • Renamed UpdateOperators to UpdateQuery, removed UpdateExpression
  • Renamed UpsertOperators to UpsertQuery
  • Renamed Expression (and its hierarchy) to BsonNode
  • Renamed ValueDsl to AggregationOperators

BSON

  • Added Bson.toByteArray() and BsonArray.toByteArray() to access the raw binary BSON representation (!49)
  • writeBinaryData's subtype parameter was changed from Byte to UByte to better mirror the BSON spec (!49)
  • Added BsonType.fromCode() to more easily access a BSON type from its binary representation (!50)
  • Added Bson.read() and BsonArray.read() to access contents of BSON objects (!50)
  • Added BsonContext.readDocument() and BsonContext.readArray() to convert from the binary BSON representation to driver objects (!50)
  • Documented that BSON-writeable objects much implement toString with a JSON representation (!54)

BSON (Official)

  • Removed the dependency on NPM bson since it is currently unused (!49)

BSON (Multiplatform)

This new module is a pure Kotlin implementation of the BSON spec (#48, #49).

  • Write booleans (!49) and read them (!50)
  • Write int32 and int64 (!49) and read them (!50)
  • Write strings (!49) and read them (!50)
  • Write documents (!49) and read them (!50)
  • Write doubles (!49) and read them (!50)
  • Write arrays (!49) and read them (!50)
  • Write binary data (!49)
  • Write JS (!49)
  • Write datetime (49)
  • Write null (!49) and read them (!50)

DSL

  • Added the filter operator $nin (!52)
  • Added the filter operator $regex (!56)
  • Added the convenience function BsonNode.toBson() (!54)

Synchronous driver

  • Moved UpdatePipelineOperators into the correct package (!54)

Deployment

  • The project is now tested with MongoDB versions 6.0.21, 7.0.18 and 8.0.6 (!53)

Browse the documentation for this versionView release in GitLab