Golang学习笔记之golang操作mongodb(mac环境)

1.在macos上安装mongodb,用homebrew

brew install mongodb

安装完成后要进行配置建立一个文件夹mongoData
mongoData
db:用来存放数据库文件
etc:用来存放mongodb配置文件mongo.conf
logs:用来存放日志文件mongo.log

mongo.conf为mongo的配置文件,内容如下

#数据库路径
dbpath=/Users/tugame/mongoData/db/

#日志输出文件路径
logpath=/Users/tugame/mongoData/logs/mongodb.log

#错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
logappend=true

#启用日志文件,默认启用
journal=true

#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=false

#是否后台启动,有这个参数,就可以实现后台运行
fork=true

#端口号 默认为27017
port=27017

#指定存储引擎(默认不需要指定)
#storageEngine=mmapv1

#开启认证
auth=true

配置完成后启动mongodb服务

mongod -f /Users/tugame/mongoData/etc/mongo.conf

此处如果不加配置直接启动可能会出现一个错误:NonExistentPath: Data directory /data/db not found., terminating
这是因为这样对情况下,mongo使用的是自带的mongo.conf,而这个配置文件里的dbpath指向里/data/db,故而出错。

进入mongo客户端

mongo

若果要关闭mongodb服务

ps -ef | grep mongo
kill 进程号

2.使用golang来操作mongodb
golang操作mongodb有一个包mgo
获取mgo

go get gopkg.in/mgo.v2
go get labix.org/v2/mgo  #二选一即可

mongodb的数据结构为
数据库-集合-文档
类比一下,集合相当于mysql里的表,文档相当与表里的行,这样就好理解了。

golang通过mgo来操作mongodb是通过获取会话session来操作的

const (URL="127.0.0.1:27017")
//获取session
session,err := mgo.Dial(URL)
//获取数据库
db := session.DB("数据库名")
//获取集合名
collection := db.C("集合名")

golang对mongodb进行增删改查

//增
Err := collection.Insert(“”)
//删
Err := collection.Remove(bson.M{“key”:”value”})
//改
Err := collection.Update(bson.M{“key”:”value”})
//查
err := collection.Find(bson.M{“key”:”value”})

如有错误,欢迎指正
参考文档:
mgo:https://godoc.org/labix.org/v2/mgo

你可能感兴趣的:(Golang学习)