Best practice zur Aufrechterhaltung eines mgo-Sitzung

Ich bin derzeit mit einem mongodb mit mgo-lib für eine web-Anwendung, aber ich bin mir nicht sicher, ob der Weg, den ich verwende, ist gut ..

package db

import (
    "gopkg.in/mgo.v2"
)

const (
    MongoServerAddr = "192.168.0.104"
    RedisServerAddr = "192.168.0.104"
)

var (
    MongoSession, err = mgo.Dial(MongoServerAddr)

    MDB  = MongoSession.DB("message")
    MCol = MDB.C("new")
    MSav = MDB.C("save")

    UDB  = MongoSession.DB("account")
    UCol = UDB.C("user")
)

Ich init der db-session und erstellen von Variablen, die sich die Sammlung und Dokument Wert,
wenn ich also die Abfrage eine collection, die ich mit der Variablen zu machen.

So :

func UserExist(username string) bool {
    user := Users{}
    err := db.UCol.Find(bson.M{"username": username}).One(&user)
    if err != nil {
        return false
    } else {
        return true
    }
}

Gibt es also ein best practice oder diese in Ordnung ist ..?
Dank

Es ist besser, Praxis, eine Funktion verwenden, für die Einrichtung der Datenbank-session als Variablen-Deklarationen. Ein Grund, um eine Funktion zu verwenden ist, können Sie den Fehler behandeln Rückkehr aus Dial. Für UserExist, würde ich die Anzahl der Dokumente in der Ergebnismenge, um zu bestimmen, ob ein Dokument vorhanden ist. Es gibt keine Notwendigkeit zu Holen, das eigentliche Dokument.
danke für den Tipp für die UserExist Funktion! Aber mit der Funktion, die zur Initialisierung des session-Anschluss ist, kann ich es tun, mit "func init()" in das db-Paket und weisen Sie der globalen Variablen für db-und die Sammlung mit der return-Sitzung ? Ich bin nur nicht sicher, wie Sie Sie pflegen meine Sitzung mit der db öffnen, ohne dass eine "mgo.Dial()" jedes mal, wenn ich es brauche, und habe auch meine db-Sammlung bereits initialisiert ...

InformationsquelleAutor JonathanChaput | 2014-10-26

Schreibe einen Kommentar