Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package models
- import (
- "log"
- "github.com/globalsign/mgo"
- )
- const (
- host = "127.0.0.1:27017"
- source = "admin"
- user = "user"
- pass = "1234"
- )
- var globalS *mgo.Session
- func init() {
- dialInfo := &mgo.DialInfo{
- Addrs: []string{host},
- Source: source,
- Username: user,
- Password: pass,
- }
- s, err := mgo.DialWithInfo(dialInfo)
- 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)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement