Upsert не работает правильно при использовании случайного UUID для поля - PullRequest
0 голосов
/ 21 февраля 2019

У меня проблема с тем, что если я использую строку, представляющую случайный UUID, в качестве одного из полей в моем классе дел, функция upsert в MongoDB не работает должным образом, так как она не может выполнить вставку записи.

Например, у меня есть простой класс case, такой как

case class Foo(id : String, date : String)

. Я создаю экземпляр значения для этого класса следующим образом:

val value = Foo(java.util.UUID.randomUUID.toString, "2019-10-11")

Затем я вставляю его в монгоколлекция выглядит следующим образом:

collection.findAndUpdate(BSONDocument("id" -> value.id), value, upsert = true).map(_.result[Foo])

Коллекция изначально пуста, и поэтому логика должна заключаться в том, что она должна вставлять value в коллекцию, поскольку ее там нет.Но это не так.

Если я изменю способ генерации значения поля id, скажем так:

val value = Foo("123-ABC", "2019-10-11")

, то это сработает, и я получу вставку записи в коллекцию.

Типичные значения randomUUID выглядят как 80eedffc-3e49-488b-8274-5711ad984a0c.Это не приемлемо для Монго или я делаю что-то еще неправильно?

...