10.MongoDB:將Json數據直接寫入MongoDB的方法


Json轉Bson

MongoDB中是以Bson數據格式進行存儲的,Json字符串沒有辦法直接寫入MongoDB 可以將Json字符串轉換成DBObject或者Document,然后寫入MongoDB

1、將Json字符轉換成com.mongodb.DBObject(准確的說是BasicDBObject)

scala版本

import com.mongodb.DBObject
import com.mongodb.casbah.{MongoClient, MongoCollection}
import com.mongodb.util.JSON

// 構造一個Json字符串 val json = s"""{ | "school_code" : "${school_code}", | "school_name" : "${school_name}", | "teacher_idcard" : "${teacher_idcard}", | "teacher_name" : "${teacher_name}" |} |""".stripMargin val collection: MongoCollection = MongoClient("10.4.120.83")("dbName")("collectionName") val bson: DBObject = JSON.parse(json).asInstanceOf[DBObject] collection.insert(bson) // mongodb casbah的寫法

 

java版本

import com.mongodb.MongoClient; import com.mongodb.DBObject; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.util.JSON; // 構造一個Json字符串 String json = " {" + " 'school_code' : '111111', " + " 'school_name' : '漢東政法大學', " + " 'teacher_idcard' : '0000001', " + " 'teacher_name' : '高育良' " + " } "; MongoClient mongoClient = new MongoClient("10.4.120.83", 27017); MongoDatabase database = mongoClient.getDatabase("dbName"); MongoCollection<DBObject> collection = database.getCollection("collectionName", DBObject.class); DBObject bson = (DBObject)JSON.parse(json); collection.insertOne(bson);

 

2、將字符串轉換成org.bson.Document

scala版本

import org.bson.Document import com.mongodb.casbah.{MongoClient, MongoCollection} import com.mongodb.util.JSON; // 構造一個Json字符串 val json = s"""{ | "school_code" : "${school_code}", | "school_name" : "${school_name}", | "teacher_idcard" : "${teacher_idcard}", | "teacher_name" : "${teacher_name}" |} |""".stripMargin val document:Document = Document.parse(json) // 注意!com.mongodb.casbah.MongoCollection只支持寫DBObject的子類, // 不支持寫入Document類的對象,可以使用com.mongodb.client.MongoCollection // 寫入Document類的對象,這里能寫入是因為用了自定義的隱式轉換函數,將 // Document轉換成了DBObject // 自定義的隱式轉換函數 implicit def document2DBObject(doc: Document): DBObject = JSON.parse(doc.toJson).asInstanceOf[DBObject] val collection: MongoCollection = MongoClient("10.4.120.83")("dbName")("collectionName") collection.insert(document)

 

Java版本

import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; // 構造一個Json字符串 String json = " {" + " 'school_code' : '111111', " + " 'school_name' : '漢東政法大學', " + " 'teacher_idcard' : '0000001', " + " 'teacher_name' : '高育良' " + " } "; MongoClient mongoClient = new MongoClient("10.4.120.83", 27017); MongoDatabase database = mongoClient.getDatabase("dbName"); MongoCollection<Document> collection = database.getCollection("collectionName"); Document document = Document.parse(json); collection.insertOne(document );


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM