«Недопустимое имя поля BSON» во время upsert

Я пытаюсь обновить данные в коллекции Mongo, используя следующий код:

val UsersColl = "Users" val UsersColl_AuthProvider = "AuthProvider" val UsersColl_UserId = "UserId" val UsersColl_Active = "Active" val UsersColl_SlackRealName = "SlackRealName" val UsersColl_SlackTeamId = "SlackTeamId" val AuthProvider_Slack = "Slack" val Upsert = UpdateOptions().upsert(true) internal open fun slackUserToUpsertStatement(usr: SlackUserData): WriteModel<Document> { val query = BasicDBObject(UsersColl_UserId, usr.id()) val data = mapOf( UsersColl_AuthProvider to AuthProvider_Slack, UsersColl_UserId to usr.id(), UsersColl_Active to true, UsersColl_SlackRealName to usr.realName, UsersColl_SlackTeamId to usr.teamId ) val update = BasicDBObject(data) return UpdateOneModel<Document>( query, update, Upsert ) } val updates = users.map { slackUserToUpsertStatement(it) }.toList() val coll = db.getCollection(UsersColl) coll.bulkWrite(updates) 

Когда выполняется upsert (последние три строки в приведенном выше коде), я получаю исключение java.lang.IllegalArgumentException: Invalid BSON field name AuthProvider .

Как я могу это исправить?

Я не вижу никаких проблем с полем AuthProvider (без пробелов, никаких специальных символов, таких как точки), упомянутых в ответах на подобные вопросы.

Замена

 return UpdateOneModel<Document>( query, update, Upsert ) 

от

 return ReplaceOneModel<Document>(query, Document(data), Upsert) 

исправлена ​​проблема.

  • Момент не может быть сериализован в соответствующий формат даже с помощью jackson-datatype-jsr310
  • Переопределение активателя имущества Котлина приводит к двум JPA @Id
  • Как я могу разбить String на массив в Kotlin?
  • Spring Boot: изменить идентификатор заполнителя
  • Предоставляет ли Kotlin какие-либо реализации своих интерфейсов сбора данных?
  • Нуль-безопасный ответ сети с использованием Gson и Kotlin
  • Котлин. Как проверить, является ли поле нулевым путем отражения?
  • Как передавать двоичные данные в тело ответа в Spring WebFlux
  • Котлин Поэт пустой генерации конструктора - наследование
  • Ошибка: не удается получить доступ к файлу класса KObject для kotlin.jvm.internal.KObject не найден
  • Почему в заявлении на печать Kotlin не требуется уточнение сферы применения?
  • Давайте будем гением компьютера.