package database
|
|
|
|
import mgo "gopkg.in/mgo.v2"
|
|
|
|
type Db struct {
|
|
Users *mgo.Collection
|
|
Planets *mgo.Collection
|
|
SolarSystems *mgo.Collection
|
|
Galaxies *mgo.Collection
|
|
}
|
|
|
|
func New(url string, databaseName string) (*Db, error) {
|
|
session, err := mgo.Dial("mongodb://" + url)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
//defer session.Close()
|
|
|
|
// Optional. Switch the session to a monotonic behavior.
|
|
session.SetMode(mgo.Monotonic, true)
|
|
|
|
// Optional. Switch the session to a monotonic behavior.
|
|
session.SetMode(mgo.Monotonic, true)
|
|
|
|
db := Db{}
|
|
db.Users = session.DB(databaseName).C("users")
|
|
db.Planets = session.DB(databaseName).C("planets")
|
|
db.SolarSystems = session.DB(databaseName).C("solarsystems")
|
|
db.Galaxies = session.DB(databaseName).C("galaxies")
|
|
|
|
return &db, nil
|
|
}
|