mongodb中的嵌套字段带有scala的文档

时间:2018-05-22 16:08:59

标签: mongodb scala

将scala应用程序中的mongodb连接从Mongodb + Casbah升级到mongo-scala-driver 2.3.0(scala 2.11.8)时,我们在创建要在数据库中插入的文档时遇到一些问题。基本上我遇到了Map [String,Any]或Map [Int,Int]类型的嵌套字段的问题。

如果我的字段是Map [“String”,Int]类型,则没有问题,代码编译没问题:

IServiceB

我尝试了很多变通方法,但是我无法创建一个完整的Document来插入Map [Int,Int]类型的字段既没有Map [String,Any],我想通过升级到更新的版本Mongo会让事情变得更容易......我错过了什么?

1 个答案:

答案 0 :(得分:1)

请注意,Map[Int,Int]类型不是有效的文档地图,因为Documents
    k,v -> String, BsonValue格式。

因此将编译:

val usersPerTime = Map("180" -> 23, "68" -> 34) //Map[String,Int]
Document("page_id" -> pageId, "users_per_time" -> Document(usersPerTime)) 

对于这两种情况,直接使用Document类而不是Map:

val usersConf = Document("age" -> 32, "country" -> "Spain") 
Document("user_id" -> userId, "user_conf" -> usersConf) 

这适用于"org.mongodb.scala" %% "mongo-scala-driver" % "2.1.0"