对字段使用随机UUID时Upsert无法正常工作

时间:2019-02-21 15:21:15

标签: mongodb scala reactivemongo

我遇到一个问题,如果我使用一个表示随机UUID的字符串作为case类中的字段之一,则MongoDB中的upsert函数将无法正常工作,因为它无法插入记录。 / p>

例如,我有一个简单的案例类,例如

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

我为该类实例化一个值,如下所示:

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

然后我将其插入到mongo集合中,如下所示:

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。这是mongo不能接受的,还是我做错了其他事情?

0 个答案:

没有答案