- Multiplatform KotlinX.Serialization support (#50, !117, thanks @UnknownJo#e796)
- Added
Field.unsafe() overloads to allow more use-cases (!132)
$concat now allows nullability, and has been moved from ArithmeticValueOperators to StringValueOperators (!134)
- 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)
- Added Wasm WASI support (!126)
- Fixed
AggregationPipeline.reinterpret which attempted to deserialize the wrong type (#91, !129)
- Projections are now represented with booleans instead of integers, for smaller request payloads (#81, !121)
Aggregation stages:
Accumulation operators:
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)
- KotlinX.Serialization 1.9.0
- KotlinX.Coroutines 1.10.2
- KotlinX.IO 0.8.0
- MongoDB Java driver 5.5.1
- Added support for reading and writing
ObjectId (!110)
- Added support for the update operator
$addToSet (!107)
- Added support for the update operator
$currentDate (!108)
- Moved the website to https://ktmongo.opensavvy.dev (!112, !113)
- 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)
- Deleted the old expect class opensavvy.ktmongo.bson.official.types.ObjectId (!80)
- Added a codec for the new ObjectId (!80)
- 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)
JvmMongoCollection.find now returns a JvmMongoIterable instead of a MongoIterable (!85)
- 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)
- Added a section on aggregation support to the KMongo migration page (#87, !103)
- Pure Kotlin ObjectId implementation (!72)
- Added utilities for comparing ObjectId and Instant (!72)
- 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)
- 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)
- Added the
skip option (!65)
- Added the
maxTimeMS option (!65)
- Read and write the MinKey and MaxKey special values (#64, !67)