安装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 {