[go: up one dir, main page]

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