【问题标题】:json manipulation and push to mongodb (PLAY-2.7-Scala-2.12)json 操作并推送到 mongodb (PLAY-2.7-Scala-2.12)
【发布时间】:2019-07-09 15:38:44
【问题描述】:

任何人都可以帮助我了解如何 模型(如用户(名称:字符串))JSON将其保存到 MongoDB ??

【问题讨论】:

    标签: json mongodb scala playframework


    【解决方案1】:

    你可以试试这样的..

    构建.sbt:

    "org.mongodb.scala" %% "mongo-scala-driver" % "2.6.0"
    "com.typesafe.play" %% "play-json" % "2.7.1"
    

    首先创建 mongoDB 配置..

    val credential: MongoCredential = ???
    val settings: MongoClientSettings = ???
    val client: MongoClient = MongoClient(settings)
    val db: MongoDatabase = client.getDatabase("db-name")
    val collection: MongoCollection[Document] = client.getCollection("collection-name")
    
    case class Model(name: string)
    
    object Model {
        implicit val modelFormat: Format[Model] = Json.format[Model]
    }
    

    用法:

    val data: JsValue = Json.toJson(new Model("Rex"))
    

    插入数据库并检查是否插入:) ..

    collection.insertOne(Document(data.toString))
    
    

    【讨论】:

    • val data: JsonNode = Json.toJson(new Book("ISBN100","TEST" , "LEL" , 12,9999)) collection.insertOne(Document(data.toString)) intellij 显示编辑器中的此错误:[错误]:无法解析重载的插入方法 [错误]:未指定的值参数:文档:seq[_<:book>
    • 我正在尝试创建一个 api def addBook = Action { 隐式请求:Request[Book] => // val newBook = request.body // val books = bookService.addBook(newBook) // collection.insertOne(newBook) // // // }
    • 设置与 mongodb 的连接,如下所示:mongodb.github.io/mongo-scala-driver/2.4/getting-started
    • 我想你只需要检查你的val newBook = request.body 它必须是一个 JSON 格式的字符串。因为 Document 需要 String 参数,但是是 JSON 格式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 2021-02-25
    • 1970-01-01
    • 2020-01-15
    相关资源
    最近更新 更多