将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会让事情变得更容易......我错过了什么?
答案 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"