学习数据持久化。

package main

import (
	"fmt"
	"log"
	"time"

	"gopkg.in/mgo.v2"
	"gopkg.in/mgo.v2/bson"
)

type Category struct {
	Id          bson.ObjectId `bson:"_id,omitempty"`
	Name        string
	Description string
}

func main() {
	mongoDialInfo := &mgo.DialInfo{
		Addrs:    []string{"localhost"},
		Timeout:  5 * time.Second,
		Database: "taskdb",
		Username: "root",
		Password: "123456",
	}
	session, err := mgo.DialWithInfo(mongoDialInfo)

	if err != nil {
		panic(err)
	}

	defer session.Close()

	session.SetMode(mgo.Monotonic, true)
	c := session.DB("taskdb").C("categories")

	doc := Category{
		bson.NewObjectId(),
		"Open Source",
		"Tasks for open-source projects",
	}

	err = c.Insert(&doc)
	if err != nil {
		log.Fatal(err)
	}

	err = c.Insert(
		&Category{
			bson.NewObjectId(),
			"R & D",
			"R & D Tasks",
		},
		&Category{
			bson.NewObjectId(),
			"Project",
			"Project Tasks",
		})
	var count int
	count, err = c.Count()
	if err != nil {
		log.Fatal(err)
	} else {
		fmt.Printf("%d records inserted.", count)
	}
}

  

《Web Development with Go》Mangodb插入struct数据的更多相关文章

  1. 《Agile Web Development With Rails》读后感--rails基于web设计的best Practices

    最近看完<Agile Web Development with Rails>一书,受益匪浅.书中先是用一个简单的web应用带你进入Rails的世界,然后在你大致熟悉之后,再带你了解Rail ...

  2. 003杰信-在jsp页面输入数据,然后在oracle数据库中插入factory数据,当字段允许为空时要特殊处理

    本博客的内容全部来自于传智播客,特在此说明. 业务要求如下:在jsp页面(jFactoryCreate.jsp)上输入数据时,转到后台,并输入到数据库. jFactoryCreate.jsp页面:

  3. Python MySQLdb 使用utf-8 编码插入中文数据

    参考地址:http://blog.csdn.net/dkman803/article/details/1925326/ 本人在使用python,mysqldb操作数据库的时候,发现如下问题,编码如下: ...

  4. Web开发秘方(WEB DEVELOPMENT RECIPES)[47.5MB] PDF扫描版

    不借助插件怎样在移动设备上实现动画效果?怎样快速搭建HTML电子邮箱?怎样制作跨PC和移动设备显示的应用界面?怎样利用最新的JavaScript框架提高应用的响应速度?怎样有效利用CoffeeScri ...

  5. 《Web Development with Go》实现一个简单的rest api

    设计模式完了之后,应该实现具体的应用了. 设计模式还得没事就要复习. web应用,学习的是网上的一本书. <Web Development with Go> package main im ...

  6. Beginners Guide To Web Development

    Web Development Front End Development Back End Development

  7. sqlserver 自增ID插入指定数据

    set identity_insert 表名 ON --允许对自增列Id插入指定数据 insert into table_name(Id,Name) values(1,'test') set iden ...

  8. mysql如果数据不存在,则插入新数据,否则更新的实现方法

    mysql如果数据不存在,则插入新数据,否则更新的实现方法 //如果不存在,则插入新数据 $sql = "INSERT INTO {$ecs->table('cat_lang')} ( ...

  9. mysql 插入/更新数据

    mysql 插入/更新数据 INSERT 语句 1.一次性列出全部字段的值,例如: INSERT INTO student VALUES('Chenqi','M', 29); INSERT INTO ...

随机推荐

  1. gtest、cmake使用

    gtest github: https://github.com/google/googletest 学习:玩转Google开源C++单元测试框架Google Test系列(gtest)(总) 一.安 ...

  2. 基于iCamera测试宽动态全局摄像头mt9v034或mt9v032小结

    基于iCamera测试宽动态全局摄像头mt9v034或mt9v032小结 先看看硬件特点 主要是:全局快门.宽动态 然后看看硬件测试,usb采集出图 再看看寄存器配置 主要测试,可以修改分辨率,修改曝 ...

  3. httpBasic 认证的URL访问

    httpBasic 认证 要在发送请求的时候添加HTTP Basic Authentication认证信息到请求中,有两种方法: 1.在请求头中添加Authorization: Authorizati ...

  4. 如何关注flink的maillist,参与贡献

    对一些开源的中间件 大家可能都很热爱,如何参与其中呢,很多人却感觉是一件很遥远的事情, 最近一时兴起,迈出这一步,我关注一下也没啥问题 以下对flink的关注的一些步骤,(详细的可以参考官网步骤,ht ...

  5. rails gem ransack 之模糊搜索

    gem 'ransack' eq: "等于" eq_any: "等于任意值" eq_all: "等于所有值" not_eq: "不 ...

  6. ssm项目集成

    ssm项目集成 说明:ssm指的是 spring + springMvc+ mybatis,是目前开发比较流行的集成方式,可以较好的实现前后端分离 spring与mybatis的集成,是通过配置文件a ...

  7. 浅析椭圆曲线加密算法(ECC)

    本文首发于先知社区,原文链接:https://xz.aliyun.com/t/6295 数学基础 黎曼几何中的"平行线" 欧几里得<几何原本>中提出五条公设: 过相异两 ...

  8. ImportError: No module named flask 导包失败,Python3重新安装Flask模块

    在部署环境过程中,通过pip install -r requirements.txt安装包,结果启动项目时总是报错,显示没有flask模块,通过pip install flask还是不行,于是下载fl ...

  9. centos基本信息和ssh

    CentOs系统基本配置,包括修改主机名,创建用户并授权,ssh免密登录 1 永久修改主机名 sudo vim /etc/hostname 把原主机名xxx改为master(在从主机上则改为相应的sl ...

  10. Android组件体系之视图绘制

    一.View组件View组件有几个重要的方法需要关注,也是自定义View经常需要重写的方法. 1.measure作用是测量View组件的尺寸.对应的方法是onMeasure,测量View的宽和高.Vi ...