golang操作mongodb

前言

自己基于mongo go官方驱动封装了一个简易的mongo操作库,使用上与gorm类似。

benchmark测试后相比官方驱动也差不多。不用考虑官方的各种options对象如何使用。

项目地址

mongo-plus,期待你的star

快速开始

go get -u github.com/here-Leslie-Lau/mongo-plus/mongo

创建mongo连接

opts := []mongo.Option{
	// 要连接的数据库
	mongo.WithDatabase("test"),
	// 最大连接池数量
	mongo.WithMaxPoolSize(10),
	// 用户名
	mongo.WithUsername("your username"),
	// 密码
	mongo.WithPassword("your password"),
	// 连接url
	mongo.WithAddr("localhost:27017"),
}
conn, f := mongo.NewConn(opts...)
defer f()

实现collection接口

这一步是为了告诉程序你要操作哪个集合, 这里要操作的集合名为demo

type Demo struct{}

// Collection 实现mongo.Collection接口, 返回要操作的集合名
func (d *Demo) Collection() string {
	return "demo"
}

// 方法内获取collection对象
demo := &Demo{}
coll := conn.Collection(demo)

插入文档

coll.InsertOne(document)
coll.InsertMany(documents)

查询文档

// 查询name为leslie的单条文档
coll.Where("name", "leslie").FindOne(&document)
// 查询name为leslie的文档
coll.Where("name", "leslie").Find(&documents)
// 多条件查询
coll.Filter(map[string]interface{}{"name": "leslie", "age": 18}).FindOne(&document)

其余用法可以参考这些测试用例 ,之后会对文章进行补充

最后

现在该库处理v0.1版本,更详细的信息参考github,欢迎大家多多提建议(中肯或者不足都可以,每天都会进行更新)

也可以直接拉下代码:

git clone [email protected]:here-Leslie-Lau/mongo-plus.git

然后提个pr,感谢

你可能感兴趣的:(Go,数据库,mongodb,golang,数据库)