Сериализация KMongo BSONTimestamp

Я пытаюсь сериализовать BSONTimestamp с Kotlins KMongo lib. Но внутри MongoDb я вижу только его представление String.

"someVal" : { "inc" : 1, "time" : 1495104096 } 

Должен ли я добавить некоторую аннотацию для Джексона для ее правильной сериализации?

Я сомневаюсь, что это имеет какое-то отношение к KMongo, но вы можете попытаться сообщить об этом вопросам github. Автор очень отзывчив.

Тем не менее, я прочитал это как проблему сериализации Джексона, и поэтому лучший способ решить это, на мой взгляд, – создать правило сериализации, подобное

 object BSONTimestampModule : SimpleModule("BSONTimestampModule") { init { addSerializer(BSONTimestamp::class.java, object : JsonSerializer<BSONTimestamp>() { override fun serialize(value: BSONTimestamp?, gen: JsonGenerator, serializers: SerializerProvider?) = gen.writeString(value?.time) }) } } 

Я не знаю точно, как ожидается сохранение BSONTimestamp, так что вам, возможно, придется немного подкорректировать его, но как только модуль будет определен, зарегистрируйте его с помощью Jackson Mapper, например

KMongoConfiguration.extendedJsonMapper.registerModule(BSONTimestampModule)

Похоже, вы ссылаетесь на BsonTimestamp, тогда да, это то, что mongo-java использует по умолчанию (и не имеет ничего общего с KMongo). BSONTimestamp – это специальная реализация, используемая «внутренне» для монго и обычно не допускается к использованию кем-либо внешним. То же самое верно для всего в пакете org.bson.types. Это не ваши обычные контракты и больше подходят для взаимодействия с mongo на уровне двоичного уровня или уровня драйвера.

BsonTimestamp (в пакете org.bson) действительно является фактическим типом данных, который вы возвращаете с помощью любых преобразований даты mongos в / из.

Извините, я видел, что вы используете все прописные BSON и предположили, что вы хотите сделать что-то более продвинутое.

Anwser был довольно простым, я использовал неправильный класс BSONTimestamp. По некоторым причинам есть два, один в org.bson и один в org.bson.types . С классом от org.bson KMongo в Serializer выполняет свою работу – duh!