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 );
10.MongoDB:将Json数据直接写入MongoDB的方法的更多相关文章
- MongoDB 将Json数据直接写入MongoDB的方法
Json转Bson MongoDB中是以Bson数据格式进行存储的,Json字符串没有办法直接写入MongoDB 可以将Json字符串转换成DBObject或者Document,然后写入MongoDB ...
- ASP输出JSON数据及客户端jQuery处理方法
首先ASP处理JSON需要json官方提供的JSON For ASP 封装类文件,下载地址:http://code.google.com/p/aspjson/downloads/list 下载最新的J ...
- 批量插入数据, 将DataTable里的数据批量写入数据库的方法
大量数据导入操作, 也就是直接将DataTable里的内容写入到数据库 通用方法: 拼接Insert语句, 好土鳖 1. MS Sql Server: 使用SqlBulkCopy 2. MySql ...
- 三、用Delphi10.3 创建一条JSON数据的第三种方法,非常简洁的写法
一.用Delphi10.3构造一个JSON数据的第三种方法,并格式化输出,代码如下: uses // System.JSON, System.JSON.Types, System.JSON.Write ...
- nodejs读取json文件,写入mongodb数据库
最近又一点时间,开始使用mongodb存储json模型文件,然后可以实现模型文件的在线编辑和管理.今天上午实现了json文件入库的代码,如下: var fs=require("fs" ...
- 生成JSON数据--fastjson(阿里)方法
fastjson(阿里)方法生成JSON数据: 与Gson类似,创建相应类,再使用JSON.toJSONString()添加对象 要求:生成如下JSON数据 1.{"age":3, ...
- 生成JSON数据--Gson(谷歌)方法
Gson生成JSON数据方法: 创建相应的类,然后创建对象,toJson()进去就可以了 要求:生成如下JSON数据 1.{"age":4,"name":&qu ...
- Android中Json数据读取与创建的方法
转自:http://www.jb51.net/article/70875.htm 首先介绍下JSON的定义,JSON是JavaScript Object Notation的缩写. 一种轻量级的数据交换 ...
- IOS - JSON数据解析 小3种方法
[manager GET:serverURL parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject ...
随机推荐
- js递归获取html页面所有标签
js原生递归获取,直接源码 : <script> var child = document.children; var arr = [];//用来存放获取到的所有的标签 function ...
- [APIO2014]回文串(回文自动机)
题意 给你一个由小写拉丁字母组成的字符串 s.我们定义 s 的一个子串的存在值为这个子串在 s 中出现的次数乘以这个子串的长度. 对于给你的这个字符串 s,求所有回文子串中的最大存在值. |S|< ...
- HTTP——学习笔记(2)
HTTP协议通信双方一定是客户端和服务器端,而且一定是由客户端发出请求,由服务器接受请求 客户端发送的报文的构成: 服务器端收到请求后响应的报文构成: 客户端向服务器端发送请求有多种方法: get:获 ...
- 常用Java开源库(新手必看)
Jakarta common: Commons LoggingJakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具 ...
- 一个tomcat下部署多个项目或一个服务器部署多个tomcat
最近需要把两个项目同时部署到服务器上,于是研究了一下,页借鉴了很多别人的方法,把过程记录下来,以儆效尤. 目录: 1,一个tomcat下同时部署两个项目(多个项目可以参考) 1.1项目都放在webap ...
- hadoop-04-mysql安装
hadoop-04-mysql安装 su root 1,rpm -qa|grep mysql 2, rpm -e --nodeps `rpm -qa|grep mysql` 3,rpm -ivh co ...
- Invalid project description.
1.错误描写叙述 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/ ...
- C++ 何时使用动态分配(即使用newkeyword)?何时使用指针?
动态分配 在你的问题里.你用了两种方式创建对象.这两种方式基本的不同在于对象的存储时间. 当运行Object myObject;这句代码时.它作为自己主动变量被创建,这意味着当对象出了作用域时也会自己 ...
- vue组件父子之间相互通信案例
- 不再安全的 OSSpinLock
自旋锁的本质是持续占有cpu,直到获取到资源.与其他锁的忙等待的实现机制不同. 昨天有位开发者在 Github 上给我提了一个 issue,里面指出 OSSpinLock 在新版 iOS 中已经不能再 ...