我找到了一些代码可以解析JSON文档,将其转换为BSON然后插入。但是这个代码是使用casbah中的Java类实现的。我在Scala中找不到相应的实现。
casbah文档也说"通常,您只需在代码中使用org.mongodb.scala和org.bson命名空间。您不需要从com.mongodb命名空间导入,因为Scala驱动程序中有等效的类型别名和伴随对象。主要的例外是通过MongoClientSettings中的构建器进行高级配置,这被认为是高级用户。"
如果您看到以下代码并注意导入,则他们使用的是com.mongodb类。我可以在scala中使用下面的代码并使其工作,但我想知道是否有Scala实现将JSON插入到mongodb中。
import com.mongodb.DBObject
import com.mongodb.casbah.MongoClient
import com.mongodb.casbah.MongoClientURI
import com.mongodb.util.JSON
val jsonString = """{"card_id" : 75893645814809,"cust_id": 1008,"card_info": {"card_type" : "Travel Card","credit_limit": 126839},"card_dates" : [{"date":"1997-09-09" },{"date":"2007-09-07" }]}"""
val dbObject: DBObject = JSON.parse(jsonString).asInstanceOf[DBObject]
val mongo = MongoClient(MongoClientURI("mongodb://127.0.0.1:27017"))
val buffer = new java.util.ArrayList[DBObject]()
buffer.add(dbObject)
mongo.getDB("yourDBName").getCollection("yourCollectionName").insert(buffer)
buffer.clear()
参考:Scala code to insert JSON string to mongo DB
我发现很少有在线链接建议使用不同的JSON解析器库,但是即使上面约5行代码可以在Java中插入JSON文档,但它们都不是直截了当的。我想在Java中实现类似的功能。