[go: up one dir, main page]

Tags

Tags give the ability to mark specific points in history as being important
  • 0.24.0

    protected Release: 0.24.0 • Mokodee, unset shorthand and easier KMongo migration
    Mokodee, unset shorthand and easier KMongo migration
    
    ### DSL
    
    - Added the `unset` shorthand for updates (1b49046f, !135)
    
    ### Documentation
    
    - Added Mokodee, the KtMongo mascot! (c488893f, thanks to [Lilywhiteout](https://bsky.app/profile/lilywhiteout.bsky.social))
    - Added a set up guide to the KMongo migration guide (e663d70f)
    - Reorganized and updated the Multiplatform roadmap (67f6816d, 716ce781)
    - Formatting improvements in the aggregation page (20d455fa, 35c79cf4)
    
    ### Dependencies
    
    - Prepared 2.1.1
    
  • 0.23.0

    protected Release: 0.23.0 • Multiplatform KotlinX.Serialization, Field.unsafe expansion, replace and KMongo utilities
    Multiplatform KotlinX.Serialization, Field.unsafe expansion, replace and KMongo utilities
    
    ### BSON (Multiplatform)
    
    - Multiplatform KotlinX.Serialization support (#50, !117, thanks @UnknownJoe796)
    
    ### DSL
    
    - Added `Field.unsafe()` overloads to allow more use-cases (!132)
    - `$concat` now allows nullability, and has been moved from `ArithmeticValueOperators` to `StringValueOperators` (!134)
    
    ### Drivers
    
    - Added `replaceOne()` and `repsertOne()` (!133)
    - Added `:driver-sync-kmongo` and `:driver-coroutines-kmongo` with a utility function to convert KMongo objects to KtMongo objects (!132)
    
    ### Documentation
    
    - Introduced the [Kotlin Multiplatform roadmap](https://ktmongo.opensavvy.dev/tutorials/multiplatform/index.html) (0861208a)
    - Added a [feature page on aggregations](https://ktmongo.opensavvy.dev/features/aggregations.html) (f4bec354)
    - Minor improvements on the home page
    
  • 0.22.0

    protected Release: 0.22.0 • WASI, averages and aggregation deserialization fixes
    WASI, averages and aggregation deserialization fixes
    
    ### BSON
    
    - Added Wasm WASI support (!126)
    
    ### DSL
    
    - Added the `$avg` accumulator (679ebb2c, !127)
    - Added the `$avg` aggregator (ebdc71de, !127)
    
    ### Drivers
    
    - Fixed `AggregationPipeline.reinterpret` which attempted to deserialize the wrong type (#91, !129)
    
  • 0.21.0

    protected Release: 0.21.0 • $group and string aggregation operators
    $group and string aggregation operators
    
    ### DSL
    
    - Projections are now represented with booleans instead of integers, for smaller request payloads (#81, !121)
    
    Aggregation stages:
    
    - Added `$group` (!120)
    
    Accumulation operators:
    
    - Added `$sum` (!120)
    
    Aggregation operators:
    
    - Added `$multiply`, `$divide` and `$subtract` (!122)
    - Added `$trim`, `$ltrim` and `$rtrim` (!123)
    - Added `$toLower` and `$toUpper` (!123)
    - Added `$substrCP`, `$substrBytes`, `$strLenCP` and `$strLenBytes` (!123)
    - Added `$split` (!123)
    - Added `$replaceOne` and `$replaceAll` (!123)
    
    ### Dependencies
    
    - KotlinX.Serialization 1.9.0
    - KotlinX.Coroutines 1.10.2
    - KotlinX.IO 0.8.0
    - MongoDB Java driver 5.5.1
    
  • 0.20.1

    protected Release: 0.20.1 • Fixed documentation website deployment
    Fixed documentation website deployment
    
  • 0.20.0

    protected Release: 0.20.0 • $addToSet, $currentDate and the new documentation website
    $addToSet, $currentDate and the new documentation website
    
    ### BSON
    
    - Added support for reading and writing `ObjectId` (!110)
    
    ### DSL
    
    - Added support for the update operator `$addToSet` (!107)
    - Added support for the update operator `$currentDate` (!108)
    
    ### Documentation
    
    - Moved the website to https://ktmongo.opensavvy.dev (!112, !113)
    
  • 0.19.0

    protected Release: 0.19.0 • Pure Kotlin ObjectId and Timestamp, $switch, type aggregation operators, bitwise filter operators, writeConcern and readPreference
    Pure Kotlin ObjectId and Timestamp, $switch, type aggregation operators, bitwise filter operators, writeConcern and readPreference
    
    ### BSON
    
    - Moved `ObjectId` to `opensavvy.ktmongo.bson.types` (6e455683, !80)
    - Added `ObjectIdGenerator` with multiple implementations (!80)
    - Added `ObjectId.MIN` and `ObjectId.MAX` (!80)
    - Added `BsonContext.newId` (!80)
    - Added `BsonReader.readInstant` and `BsonWriter.writeInstant` (244237ed, !88)
    - Added `opensavvy.ktmongo.bson.types.Timestamp` (!89)
    - Changed timestamp APIs from `Long` to the new `Timestamp` type (!89)
    
    ### BSON (official)
    
    - Deleted the old expect class opensavvy.ktmongo.bson.official.types.ObjectId (!80)
    - Added a codec for the new ObjectId (!80)
    
    ### BSON (multiplatform)
    
    - Decreased data copying when reading data (417128b5, !84)
    - Removed autoboxing in the implementation of the reader (17cab93a, !84)
    - Added no-copy piping of BSON from a reader to a writer (!86)
    - Added support for reading and writing `BsonType.DateTime` as `kotlin.time.Instant` (e15001f4, !88)
    - Added support for reading and writing `BsonType.RegExp` (2bb5e544, !88)
    - Added support for reading and writing `BsonType.Timestamp` (aa3c9a9e, !89)
    
    ### Official driver
    
    - `JvmMongoCollection.find` now returns a `JvmMongoIterable` instead of a `MongoIterable` (!85)
    
    ### DSL
    
    - Added the aggregation operator `$switch` (!90)
    - Added the aggregation operators `$type`, `$isArray`, `$isNumber`, `$toBoolean`, `$toDate`, `$toDouble`, `$toInt`, `$toLong`, `$toObjectId`, `$toString` and `$toUUID` (!91)
    - Added the filter operators `$bitAllClear`, `$bitsAllSet`, `$bitsAnyClear` and `$bitsAnySet` (!92)
    - Added the option `writeConcern` (!93)
    - Added the option `readPreference` (!94)
    - Created the `Command` interface and reorganized all commands to emit their BSON representation (!95)
    
    ### Documentation
    
    - Added a section on aggregation support to the KMongo migration page (#87, !103)
    
    ### Dependencies
    
    - Kotlin 2.2.0
    
  • 0.18.0

    protected Release: 0.18.0 • ObjectId, range operators, $min and $max, read concern and Java usage
    ObjectId, range operators, $min and $max, read concern and Java usage
    
    ### BSON
    
    - Pure Kotlin ObjectId implementation (!72)
    - Added utilities for comparing ObjectId and Instant (!72)
    
    ### DSL
    
    - Added the `isIn` operator to query on ranges (!75)
    - Added the `$size` filter operator (659dae51, !82)
    - Added the `$nor` filter operator (20378994, !82)
    - Added the `$min` and `$max` update operators (b298039f, !82)
    - Added the `readConcern` option (0b9520aa, !83)
    
    ### Synchronous driver
    
    - Added a new experimental module, `:driver-sync-java`, with utilities for using KtMongo from Java (!69)
    - Java: Added `JavaField.of(Customer::name)` syntax (!69)
    - Java: Added `KtMongo.from()` helper (!69)
    - Java: Added `options(s -> s.)` syntax (!69)
    
    ### Dependencies
    
    - Kotlin 2.1.21 (06afc477)
    - MongoDB Java driver 5.5.0 (07106e25)
    - KotlinX.Serialization 1.8.1 (399750c2)
    
  • 0.17.0

    protected Release: 0.17.0 • $mul and Field.unsafe
    $mul and Field.unsafe
    
    ### DSL
    
    - Marked `Field`'s `Root` type parameter as contravariant (2424b984)
    - Added `Field.unsafe` to access field names using a stringly API (508d0ca9, !71)
    - Added the `$mul` update operator (!74)
    
  • 0.16.0

    protected Release: 0.16.0 • skip, maxTimeMS, MinKey, MaxKey
    skip, maxTimeMS, MinKey, MaxKey
    
    ### DSL
    
    - Added the `skip` option (!65)
    - Added the `maxTimeMS` option (!65)
    
    ### BSON
    
    - Read and write the MinKey and MaxKey special values (#64, !67)
    
  • 0.15.0

    protected Release: 0.15.0 • `$regex` flexibility, simpler options, `Reader.toBson`
    `$regex` flexibility, simpler options, `Reader.toBson`
    
    ### DSL
    
    - Allow using `$regex` on a nullable `String` field (!59)
    - Rewrote the representation of options to make them simpler to evolve in the future (!61)
    
    ### BSON
    
    - Added `BsonDocumentReader.toBson` and `BsonArrayReader.toBson` (9148b99c, !61)
    - Added `BsonDocumentReader.asValue` and `BsonArrayReader.asValue` (19348ff2, !63)
    - Added `BsonValueWriter.pipe` (#41, 48267c74, !63)
    - Renamed `Bson.read` to `Bson.reader` (f503f49e, !61)
    
    ### BSON (Multiplatform)
    
    - Read binary data (876b6fee, !58)
    - Read JavaScript (21b5e928, !58)
    - Read `undefined` (c233d391, !62)
    - Implemented `BsonContext.buildArray` (#48, 37f0b868, !63)
    - Implemented `BsonFieldWriter.write` (627ec56e, !63)
    
    ### Documentation
    
    - Added a mention to `$in` and `$nin` in `FilterQuery` (a1e04fe8, !57)
    - Fixed a broken sentence in `BsonDocumentReader` (34ca574d, !57)
    - Added the Multiplatform BSON implementation to the API references (888b31ce, !57)
    
  • 0.14.0

    protected Release: 0.14.0 • Start of the Multiplatform driver, the great rename, $nin and $regex
    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)
    
  • 0.13.0

    protected Release: 0.13.0 • Arbitrary BSON writers and parsers
    Arbitrary BSON writers and parsers
    
    ### BSON
    
    The `:bson` module's documentation on the Kotlin MongoDB driver has been removed.
    
    There are multiple breaking changes related to this refactor. For example, `buildBsonDocument` and `buildBsonArray` are now members of `BsonContext` instead of being top-level functions.
    
    - Everything but the interface definitions for arbitrary BSON writers and parsers has been removed from the `:bson` module
    - The BSON parser and writer based on the Kotlin MongoDB driver has been moved to the new module `:bson-official` (67567b42)
    - BSON tests for parsers and writers have been moved to the new module `:bson-tests` (5bef8c13)
    - Support most Kotlin platforms (9af59a3b)
    
    ### Annotations
    
    - Support most Kotlin platforms (9af59a3b)
    
    ### DSL
    
    - Utilities related to the official MongoDB driver have been moved to the `:driver-shared-official` internal module (404cbb38)
    
    ### Documentation
    
    - Changed the Maven metadata from linking to the repository to linking to the documentation website (8ca2a2df)
    
  • 0.12.1

    protected Release: 0.12.1 • Embedded documentation improvements
    Documentation improvements
    
    ### Documentation
    
    Updated Dokka for MkDocs to version 0.5.0, bringing many improvements to the embedded API reference in the website.
    
  • 0.12.0

    protected Release: 0.12.0 • Array aggregation operators, and more
    Array handling aggregation operators and more
    
    ```kotlin
    users.aggregate()
        .project {
            include(User::name)
            User::bestPassingGrades set User::grades
                .filter { it gt of(50) }
                .map { it / Grade::value }
                .sortedDescending()
                .take(3)
        }
    ```
    
    ### DSL
    
    - Added the `$filter` aggregation operator (59740316, !46)
    - Added the `$map` aggregation operator (5c903096, !46)
    - Added the `$firstN` and `$lastN` aggregation operators (721b1b07, 721b1b07, !46)
    - Added the `$sortArray` aggregation operator (f736c402, a607fcce, !46)
    - Added the `$getField` aggregation operator (28946504, !46)
    - Added the `$ceil` aggregation operator (7481c6ab, !42)
    - Added the `$floor` aggregation operator (d04f4b7f, !42)
    - Added the `$count` aggregation stage (f14132bd, !45)
    - Fixed incorrect type parameters for `$degreesToRadians` and `$radiansToDegrees` (fb01397c, !43)
    
    ### Documentation
    
    - Renamed the DSL module from 'Query DSL' to 'Request DSL' (859f3737, !42)
    - Added an example to `SortOptionDsl` (91c044ac, !43)
    
    ### Dependencies
    
    - KotlinX.Coroutines 1.10.1
    - KotlinX.Serialization 1.8.0
    - MongoDB Kotlin driver 5.3.1
    - BSON JS 6.10.3
    
  • 0.11.0

    protected Release: 0.11.0 • Aggregation stages $unset, $project, $sort and $unionWith, sorting in find(), $concat aggregation operator
    Aggregation stages $unset, $project, $sort and $unionWith, sorting in find(), $concat aggregation operator
    
    ### DSL
    
    - Add the $unset aggregation stage (4be311d4, !38)
    - Add the $project aggregation stage (e27a6869, !38)
    - Add the $sort aggregation stage (8040445f, !39)
    - Add the $unionWith aggregation stage (d3773e41, !39)
    - Add the $concat aggregation operator (892491e8, !37)
    - Add sorting in find()'s options (c6b2acd8, !39)
    - Allow using the '/' notation on nullable fields (d08211e1, !39)
    - Improve toString of Mongo iterables (e8372cd1, !39)
    - Fix documentation error in the $add aggregation operator (b6db3ff2, !37)
    - Fix outdated Pipeline documentation (40c30ce3, !39)
    - Documentation improvements around aggregation pipelines (bd23fefa, !41)
    - Forbid nullable documents in models, as MongoDB doesn't allow them (5efad8f1, !39)
    
    ### Kotlin BSON
    
    - Various documentation improvements and clarifications (e17b899e, !41)
    
  • 0.10.0

    protected Release: 0.10.0 • $add, $abs and trigonometry operators
    $add, $abs and trigonometry operators
    
    ### DSL
    
    - Add the `$add` aggregation operator (#7, 4c8eedbe, !33)
    - Add the `$abs` aggregation operator (#7, 056da623, !35)
    - Add trigonometry aggregation operators `$cos`, `$cosh`, `$acos`, `$acosh`, `$sin`, `$sinh`, `$asin`, `$asinh`, `$tan`, `$tanh`, `$atan`, `$atanh` (#7, !35)
    - Move the aggregation conversion functions (`of()`) higher in the `ValueDsl` hierarchy (224c601a, !33)
    - Rename `ConditionalOperators` to `ConditionalValueOperators` (edf69970, !33)
    - Rename `SetOperators` to `SetStageOperators` (bc343596, !33)
    
    ### Documentation
    
    - Add a 'news' section to the website with changelogs (!34)
    - Add the BSON module in the API reference (!36)
    
  • 0.9.0

    protected Release: 0.9.0 • $cond, setIf, setUnless and +=
    $cond and +=
    
    ### DSL
    
    - Add the aggregation operator $cond (!32)
    - The update operator $inc can now be written += (!32)
    - Add the update operators setIf & setUnless (!32)
    - Add the aggregation operators setIf & setUnless (!32)
    
  • 0.8.0

    protected Release: 0.8.0 • Aggregation and update pipelines
    Aggregation and update pipelines
    
    ### DSL
    
    - Rewrite the Pipeline hierarchy (!31)
    
    ### Drivers
    
    - Add MongoCollection.aggregate (#38, !31)
    - Add MongoCollection.updateWithPipeline variants (#37, !31)
    
    ### Documentation
    
    - Split the article on field access into multiple pages (62571947, !30)
    - Add a documentation page on optional filters (0c6ca41a, !30)
    - Add a documentation page on filtered collections (bce1d0df, !30)
    
  • 0.7.0

    protected Release: 0.7.0 • $expr and the first aggregation stages
    $expr and the first aggregation stages
    
    ### Kotlin BSON
    
    - Fixed bug where arrays were generated incorrectly (9d0cbea3, !20)
    
    ### MongoDB DSL
    
    - Create the aggregation Value (bec086c1)
    - Create the $expr filter operator (22b9d97e)
    - Add the $match aggregation stage (44ea7bf3)
    - Add the $sample aggregation stage (fc34f2b5)
    - Add the $skip aggregation stage (3239a479)
    - Add the $limit aggregation stage (4cc84722)
    - Add the $set aggregation stage (81b7f8b4)
    - Implement the $literal aggregation operator (49e1d564)
    - Implement the $eq, $ne, $gt, $lt, $gte, $lte aggregation operators (22b9d97e)