博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go实战--golang中MongoDB(mgo) 插入interface
阅读量:5947 次
发布时间:2019-06-19

本文共 1475 字,大约阅读时间需要 4 分钟。

hot3.png

插入数据库通常情况下针对每个表创建一个结构体,但是mongodb是schemaless,文档数据库,对字段没有严格要求

 

package mainimport (	"fmt"	"gopkg.in/mgo.v2"	"io/ioutil"	"net/http"	"encoding/json"	//"time")type Count struct {	I int}var session *mgo.Sessionvar err errorfunc main() {	session, err = mgo.Dial("127.0.0.1:27017")	if err != nil {		fmt.Print(err)	}	defer session.Close()	http.HandleFunc("/insert",insert)	http.ListenAndServe(":9999",nil)	b := session.DB("testdb").C("test1").Bulk() // 第二种	//c := session.DB("testdb").C("test1") //第一种	//start := time.Now()	//for i := 0; i < 100000; i++ {	//	//b.Insert(&Count{i}) //第二种	//	c.Insert(&Count{i}) //第一种	//}	b.Run() // 第二种	//duration := time.Since(start)	//fmt.Printf("insert 10w: %v", duration.Seconds()*1e6/float64(1000))}func insert(w http.ResponseWriter,r *http.Request){	s, _ := ioutil.ReadAll(r.Body)	var p []interface{}	err := json.Unmarshal([]byte(s), &p)	if err!=nil{		fmt.Fprint(w,"json格式错误")		fmt.Println(err)		return	}	c := session.DB("testdb").C("test1") //第一种	//start := time.Now()	for _,mp :=range p{		//mp["time"]=start		err=c.Insert(&mp) //第一种		if err != nil {			fmt.Println(mp)			panic(err)		}		fmt.Println(err)	}	fmt.Println( p )}func test() {	//Create the Json string	var data = ` { "id": 12423434,  "Name": "Fernando" } `	//Marshal the json to a map	var result map[string]interface{}	err := json.Unmarshal([]byte(data), &result)	if err != nil {		fmt.Println(err.Error())		return	}	fmt.Println(result)}

 

转载于:https://my.oschina.net/mickelfeng/blog/1920875

你可能感兴趣的文章
<气场>读书笔记
查看>>
领域驱动设计,构建简单的新闻系统,20分钟够吗?
查看>>
web安全问题分析与防御总结
查看>>
React 组件通信之 React context
查看>>
Linux下通过配置Crontab实现进程守护
查看>>
ios 打包上传Appstore 时报的错误 90101 90149
查看>>
密码概述
查看>>
jQuery的技巧01
查看>>
基于泛型实现的ibatis通用分页查询
查看>>
gopacket 使用
查看>>
AlertDialog对话框
查看>>
我的友情链接
查看>>
linux安全---cacti+ntop监控
查看>>
鸟哥的linux私房菜-shell简单学习-1
查看>>
nagios配置监控的一些思路和工作流程
查看>>
通讯组基本管理任务三
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>