无法使用包含任何值的Map实例化MongoDB Document类

最近,在尝试对MongoDB执行向上插入操作时,我尝试将所有Map子句中使用的值压缩到一个$set中。

但是,这以前是通过一个有效的单一类型Map[String,Long]完成的。但是,由于我知道$set可能包含(并且确实)不同的类型,所以我想在$set子句中放入我确实需要的多个字段。

我尝试了以下操作,但没有成功。

                  "$set" -> Document(
                    item.getas[Map[String,_]]("mapField")
                  )

这已经在IDE中用Cannot resolve overloaded method Document抱怨了。

是否有任何方法可以在不使用++运算符的情况下完成此操作,从而使整个DataFrame的列分布更多?

imcoolmint 回答:无法使用包含任何值的Map实例化MongoDB Document类

Scala Map与Java Map不同,您忘记了new之前的Document字。 Document构造函数需要Java映射,但是您尝试传递scala映射。我认为您需要将Scala映射转换为Java映射:

import scala.collection.JavaConversions._
"$set" -> new Document(
  mapAsJavaMap(item.getAs[Map[String,Object]]("mapField"))
)
本文链接:https://www.f2er.com/2656598.html

大家都在问