Невозможно создать экземпляр класса документа MongoDB с картой, содержащей значения Any - PullRequest
0 голосов
/ 12 марта 2020

Недавно пытался сжать в одном Map все значения, которые будут go в моем предложении $set при выполнении переноса в MongoDB.

Однако ранее это было сделано с помощью одного набрал Map[String, Long], который работал. Тем не менее, поскольку я знаю, что $set может содержать (и содержит) различные типы, я хотел поместить туда несколько полей, которые мне нужны в предложении $set.

Я пробовал следующее без каких-либо success.

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

Это жалуется уже в IDE с Cannot resolve overloaded method Document.

Есть ли способ выполнить sh без использования оператора ++ и, таким образом, иметь больше столбцов? распространяться по фрейму данных?

1 Ответ

0 голосов
/ 13 марта 2020

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"))
)
...