golang增删改查mongdb

package main

import (
	"gopkg.in/mgo.v2"
	"fmt"
	"gopkg.in/mgo.v2/bson"
)

type Operater struct {
	mogSession *mgo.Session
	dbname     string
	document   string
}

//集合的结构 其他中AGE NAME HEIGHT 名字的首字母必须大写,如果不无法访问到
type person struct {
	AGE    int
	NAME   string
	HEIGHT int
}

//连接数据库
func (operater *Operater) connect() error {
	mogsession, err := mgo.Dial("mongodb://127.0.0.1:27017")
	if err != nil {
		fmt.Println(err)
		return err
	}
	operater.mogSession = mogsession
	return nil
}

func (operater *Operater) insert(p *person) error {
	collcetion := operater.mogSession.DB(operater.dbname).C(operater.document)
	err := collcetion.Insert(p)
	return err
}





func main() {
	p:= person{
		3134,
		"周杰伦",
		175,
	}

	operater := Operater{dbname: "mongd", document: "test"}
	operater.connect()
	//operater.insert(p)
	err := operater.insert(&p)
	if err != nil {
		fmt.Println("插入出错", err)
	}else{
		fmt.Println("success!")
	}
	ps, _ := operater.query()
	for key, value := range ps {
		fmt.Println("---->",key,value)
	}
}


//更新一行
func (operater *Operater) update() (error) {
	collcetion := operater.mogSession.DB(operater.dbname).C(operater.document)
	update := person{
		33,
		"詹姆斯",
		201,
	}
	err := collcetion.Update(bson.M{"name": "周杰伦"}, update)
	if err != nil {
		fmt.Println(err)
	}
	return err
}

//统计集合中数据的个数
func (operater *Operater) query() ([]person,error) {
	collcetion:=operater.mogSession.DB(operater.dbname).C(operater.document)
	p:=new(person)
	p.AGE=33
	query:=collcetion.Find(nil)
	ps:=[]person{}
	query.All(&ps)
	iter:=collcetion.Find(nil).Iter()
	//单个查询
	result:=new(person)
	for iter.Next(&result) {
		fmt.Println("一个一个输出:", result)
	}
	return ps,nil
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值