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)