Go使用MongoDB:采用Docker

安装MongoDB

在控制台输入:

sudo docker pull mongo
cd ~
mkdir -p docker
cd docker
mkdir -p mongo mongo/db
sudo docker run --name mongodb-server0 -v ~/docker/mongo:/data/db -p 27017:27017 -d 0fb47b43df19 --auth

其中 0fb47b43df19 是镜像id,通过sudo docker images 查看

创建MongoDB用户

首先,进入mongodb 控制台

sudo docker exec -it 5f8c9c467001 mongo admin
(其中 5f8c9c467001 是container id,通过 sudo docker ps -a 查看)

然后创建用户
db.createUser({ user: ‘Niko’, pwd: ‘???’, roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ] });

之后可以通过 db.auth(‘Niko’, ‘???’) 认证(认证后可以获得插入数据,创建用户等权限)
创建用户的role角色,参考 ref:https://www.jianshu.com/p/3a8c1904e807

到此,mongodb即安装配置完成

测试mongodb

首先,进入mongodb 控制台

sudo docker exec -it 5f8c9c467001 mongo admin

其次,尝试插入数据

use medex
db.createUser({ user: ‘temp’, pwd: ‘temp’, roles: [ { role: “readWrite”, db: “medex” } ] });
db.auth(‘temp’,‘temp’)
db.newcollection.insert({test : true})

如果显示插入成功,则一切正常

GO驱动配置

首先获得包

go get gopkg.in/mgo.v2

其次运行测试代码

package main

import (
	"fmt"
	"log"

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

type Student struct {
	Name  string
	Phone string
	Email string
	Sex   string
}

func ConnecToDB() *mgo.Collection {
	session, err := mgo.Dial("127.0.0.1:27017")
	if err != nil {
		panic(err)
	}
	//defer session.Close()
	session.SetMode(mgo.Monotonic, true)
	db := session.DB("medex")
	db.Login("Niko", "12345")
	c := db.C("student")
	return c
}
func InsertToMogo() {
	c := ConnecToDB()
	stu1 := Student{
		Name:  "zhangsan",
		Phone: "13480989765",
		Email: "[email protected]",
		Sex:   "F",
	}
	stu2 := Student{
		Name:  "liss",
		Phone: "13980989767",
		Email: "[email protected]",
		Sex:   "M",
	}
	err := c.Insert(&stu1, &stu2)
	if err != nil {
		
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值