自己基于mongo go官方驱动封装了一个简易的mongo操作库,使用上与gorm
类似。
benchmark测试后相比官方驱动也差不多。不用考虑官方的各种options
对象如何使用。
mongo-plus,期待你的star
go get -u github.com/here-Leslie-Lau/mongo-plus/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()
这一步是为了告诉程序你要操作哪个集合, 这里要操作的集合名为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,感谢