我遇到一个问题,如果我使用一个表示随机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不能接受的,还是我做错了其他事情?