首页 > 代码库 > MongoDB 将Json数据直接写入MongoDB的方法
MongoDB 将Json数据直接写入MongoDB的方法
Json转Bson
MongoDB中是以Bson数据格式进行存储的,Json字符串没有办法直接写入MongoDB 可以将Json字符串转换成DBObject或者Document,然后写入MongoDB
1、将Json字符转换成com.mongodb.DBObject(准确的说是BasicDBObject)
scala版本
import com.mongodb.DBObjectimport 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}" |} |""".stripMarginval 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.Documentimport 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}" |} |""".stripMarginval 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 );
MongoDB 将Json数据直接写入MongoDB的方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。