Qmgo

七牛云开源的Mongo数据库操作库

安装

go get github.com/qiniu/qmgo

基础封装

package dao

import (
	"context"
	"fmt"
	"github.com/aws/aws-sdk-go/private/protocol"
	"github.com/aws/aws-sdk-go/private/protocol/eventstream"
	"github.com/qiniu/qmgo"
)

type MongoStruct struct {
	Ctx context.Context
	DB *qmgo.Database
	Coll *qmgo.Collection
	Cli *qmgo.QmgoClient
}


// 固定模式
func NewBaseMongo(dbName,colName string) *MongoStruct {
	ctx := context.Background()
	cli, err := qmgo.Open(ctx, &qmgo.Config{Uri: "mongodb://localhost:27017", Database: dbName, Coll: colName})
	if err != nil{
		fmt.Println(err)
		panic(err)
	}
	return &MongoStruct{
		Cli : cli,
		Ctx: ctx,
	}
}

//创建索引
//cli.CreateOneIndex(context.Background(), options.IndexModel{Key: []string{"name"}, Unique: true})
//cli.CreateIndexes(context.Background(), []options.IndexModel{{Key: []string{"id2", "id3"}}})

func (m *MongoStruct) DisConnect() {
	if err := m.Cli.Close(m.Ctx); err != nil {
		panic(err)
	}
}

func (m MongoStruct) InsertOne(doc interface{}) (result *qmgo.InsertOneResult, err error) {
	result, err = m.Cli.InsertOne(m.Ctx, doc)
	return
}

初始化使用

最后更新于