Tags give the ability to mark specific points in history as being important
-
0.17.0
protectedRelease: 0.17.0 • $mul and Field.unsafefbbb2273 · ·$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
protectedRelease: 0.16.0 • skip, maxTimeMS, MinKey, MaxKey887f1b5a · ·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
protectedRelease: 0.15.0 • `$regex` flexibility, simpler options, `Reader.toBson`ddebfcee · ·`$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
protectedRelease: 0.14.0 • Start of the Multiplatform driver, the great rename, $nin and $regex3010e0f6 · ·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
protectedRelease: 0.13.0 • Arbitrary BSON writers and parsers957e514e · ·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
protectedRelease: 0.12.1 • Embedded documentation improvements38154ad1 · ·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
protectedRelease: 0.12.0 • Array aggregation operators, and more234c9f0c · ·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
protectedRelease: 0.11.0 • Aggregation stages $unset, $project, $sort and $unionWith, sorting in find(), $concat aggregation operatore93b18ea · ·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
protectedRelease: 0.10.0 • $add, $abs and trigonometry operatorsf53a4008 · ·$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
protectedRelease: 0.9.0 • $cond, setIf, setUnless and +=4c9ab331 · ·$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
protectedRelease: 0.8.0 • Aggregation and update pipelines78d2db50 · ·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
protectedRelease: 0.7.0 • $expr and the first aggregation stages0edcdc25 · ·$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)
-
0.6.0
protectedRelease: 0.6.0 • Map of strings and documentation improvements68091119 · ·Map of strings and documentation improvements ### DSL - Add isMapEmpty & isMapNotEmpty (#33, 75c62ebb, !28) - Add the get() operator for Map<String, V> (#33, 70473b4d, !28) ### Documentation - Add link to the documentation website in the main README (!27) - Shorten the main README (!27)
-
0.5.1
protectedRelease: 0.5.1 • Embedded documentationa627dc83 · ·Embedded documentation ### Documentation - The reference is now embedded directly into the documentation website (experimental, 8d613304, !25) ### Dependencies - Kotlin 2.1.0
-
0.5.0
protectedRelease: 0.5.0 • Collection.isEmpty, .$., .$[]., improved documentation website1e9b0c62 · ·Collection.isEmpty, .$., .$[]., improved documentation website ### DSL - Added the filter operator Collection.isEmpty (#21, !21) - Added the filter operator Collection.isNotEmpty (#21, !21) - Added the positional operator: .$. (!22) - Added the all positional operator: .$[]. (!22) ### Website - Added a documentation page for CRUD operations (!22) - Added a documentation page for bulkWrite (!22) - Added a documentation page for nested fields access, including arrays (!22)
-
0.4.0
protectedRelease: 0.4.0 • Insert, delete, drop, and a configuration tutorial2c04d9dd · ·Insert, delete, drop, and a configuration tutorial ### Drivers - Add insertOne, insertMany (!16) - Add deleteOne, deleteMany (!14) - Add drop (!14) ### Query DSL - Add InsertOneOptions, DeleteOneOptions (!16) - Add DeleteOptions (!14) - Add DropOptions (!14) - Rename any to anyValue, and anyObject to any (#11, !16) - Add a documentation header for AbstractCompoundExpression (#12, !16) - Add a link to tracking issues in operators' documentation (#13, !16) ### Documentation - Initialize the website (!15) - Add a tutorial for setting up everything (!15) - Add a contribution guide for integration tests (!16) - Add pages introducing how to find and update data (!18) - Add an explanation of the benefits of KtMongo over KMongo (!18) - Add a comparison between KtMongo and KMongo (!18) - Simplify the design of the home page (!17)
-
0.3.0
protectedRelease: count(), update(), bulkWrite(), filter(), abstract tree management and options29e21bf0 · ·count(), update(), bulkWrite(), abstract tree management and options ### Drivers - Added count() - Added countEstimated() - Added updateOne(), updateMany(), upsertOne() - Added findOneAndUpdate() - Added filtered collections - Added an 'options' lambda to all operations - Added CountOptions.limit() - Improved MongoCollection.toString() - Added bulkWrite() ### DSL - The BsonContext is now available in all expressions - Abstract over tree management with the new '.tree' package - Reorganize all operations from XXXExpressions to XXXOperators interfaces (to allow delegation) - Add Expression.toBsonDocument ### BSON - Added buildBsonArray ### Deployment - Added an integration test to ensure the driver is compatible with 3 stable MongoDB versions
-
0.2.0
protectedRelease: 0.2.0 • find(), basic filter and update operatorsc7f46f3a · ·find(), basic filter and update operators ### Drivers - Create MongoCollection and MongoIterable (!8) - Implement find, findOne (!8) ### DSL - Create Expression (!2) - Create Path and Field to refer to MongoDB fields using Kotlin variables (!3) - Implement basic filter operators (!3) - $and, $or, $not - $eq, $ne, $in - $exists, $type - $gt, $gte, $lt, $lte - $elemMatch, $all - *notNull variants - Implement basic update operators (!7) - $set, $setOnInsert, $unset - $inc - $rename ### BSON - Mark all functions as @LowLevelApi (!2) ### Dependencies - Kotlin 2.0.20 (!5)
-
0.1.0
protectedRelease: 0.1.0 • Initial versionf38abcc5 · ·Initial prototype ### BSON - Typesafe BSON writer (!1)