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 );
时间: 2024-11-07 21:29:49

MongoDB 将Json数据直接写入MongoDB的方法的相关文章

ASP输出JSON数据及客户端jQuery处理方法

首先ASP处理JSON需要json官方提供的JSON For ASP 封装类文件,下载地址:http://code.google.com/p/aspjson/downloads/list 下载最新的JSON_2.0.4.asp文件备用. 1.ASP简单JSON对像及数组输出 Demo1.asp <%@LANGUAGE=”VBSCRIPT” CODEPAGE=”65001″%><% Response.Charset = “UTF-8″ %><% Response.Content

批量插入数据, 将DataTable里的数据批量写入数据库的方法

大量数据导入操作, 也就是直接将DataTable里的内容写入到数据库 通用方法: 拼接Insert语句, 好土鳖 1. MS Sql Server:   使用SqlBulkCopy 2. MySql: adapter.update()批量更新 MySqlBulkLoader, 这个是从文件里边到的, 有个实现是先将DATATable编程CSV文件, 在用MySqlBulkLoader导入MySql 参考文章: http://theonetechnologies.com/outsourcing/

IOS - JSON数据解析 小3种方法

[manager GET:serverURL parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { // 3 解析返回的JSON数据 // 3.1 //        NSDictionary *result1 = (NSDictionary *)responseObject; // 3.2 //        NSString *requestTmp = [NSString string

远程读取json数据并写入数据库

参考:http://www.jb51.net/article/39937.htm $curlPost = 'a=1&b=2';//模拟POST数据$ch = curl_init();curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:0.0.0.0', 'CLIENT-IP:0.0.0.0'));  //构造IPcurl_setopt($ch, CURLOPT_REFERER, "http://www.jb51.net/

MVC中利用ViewBag传递Json数据时的前端处理方法

用viewBag传递Json字符串到前端时,json字符串中的“会被转义为& quot,前端处理方法为@Html.Raw(Json.Encode(ViewBag.Data)),再用eval()函数解析得到json对象:var data=eval("(" + @Html.Raw(Json.Encode(ViewBag.Data)) + “)”); 如何传递的是json对象则前端使用用 jsonData=eval( @Html.Raw(ViewBag.jsonData)); 原文地

Logstash写入MongoDB数据库

1. 列出logstash-plugins bin/logstash-plugin list****** logstash-output-kafkalogstash-output-nagioslogstash-output-nulllogstash-output-pagerdutylogstash-output-pipelogstash-output-rabbitmqlogstash-output-redis ****** 2. 根据output格式安装mongodb的output的plugin

【MongoDB for Java】Java操作MongoDB

开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开发依赖库: JavaEE5.mongo-2.5.3.jar.junit-4.8.2.jar 一.准备工作 1. 首先,下载mongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads mongoDB对Java的相关支持.技术:http://www.mongodb.org/

Cocos数据篇[3.4](2) ——Json数据操作

[唠叨] 在游戏中使用Json来储存数据,既方便读取,又方便管理. 比如CocosStudio 1.6之前版本导出的资源扩展名就是 .ExportJson 格式的. Cocos2d-x 3.x 加入了rapidjson库用于json解析.位于external/json下. 本节要介绍的就是:如何使用 rapidjson库 来操作处理json文件. [参考] http://www.w3school.com.cn/json/index.asp (W3School) http://cn.cocos2d

Android JSON数据解析(GSON方式)

要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Java对象,或是将一个Java对象转换为相应的JSON数据. 1.GSON的两个重要方法 在GSON的API中,提供了两个重要的方法:toJson()和fromJson()方法.其中,toJson()方法用来实现将Java对象转换为相应的JSON数据,fromJson()方法则用来实现将JSON数据转换