beego链接mongo的方法
package models
import (
"log"
"github.com/globalsign/mgo"
)
const (
host = beego.AppConfig.String("mongo_host")
)
var globalS *mgo.Session
func init() {
diaInfo := &mgo.DialInfo{
Addrs: []string{host},
}
s, err := mgo.DialWithInfo(diaInfo)
if err != nil {
log.Fatalln("create session error", err)
}
globalS = s
}
func connect(db, collection string) (*mgo.Session, *mgo.Collection) {
s := globalS.Copy()
c := s.DB(db).C(collection)
return s,c
}
func Insert(db, collection string, docs ...interface{}) error {
ms, c := connect(db, collection)
defer ms.Close()
return c.Insert(docs...)
}
func FindOne(db, collection string, query, selector, result interface{}) error {
ms, c := connect(db, collection)
defer ms.Close()
return c.Find(query).Select(selector).One(result)
}
func FindAll(db, collection string, query, selector, result interface{}) error {
ms, c := connect(db, collection)
defer ms.Close()
return c.Find(query).Select(selector).All(result)
}
func Update(db, collection string, query, update interface{}) error {
ms, c := connect(db, collection)
defer ms.Close()
return c.Update(query, update)
}
func Remove(db, collection string, query interface{}) error {
ms, c := connect(db, collection)
defer ms.Close()
return c.Remove(query)
}