37 lines
724 B
Go
37 lines
724 B
Go
package database
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
|
|
"go.mongodb.org/mongo-driver/v2/mongo"
|
|
"go.mongodb.org/mongo-driver/v2/mongo/options"
|
|
)
|
|
|
|
var MongoClient *mongo.Client
|
|
|
|
func ConnectMongo() {
|
|
var err error
|
|
opts := options.Client()
|
|
host, ok := os.LookupEnv("MONGO_HOST")
|
|
if !ok {
|
|
host = "localhost"
|
|
}
|
|
opts = opts.ApplyURI(fmt.Sprintf(
|
|
"mongodb://%s:%s@%s:27017",
|
|
os.Getenv("MONGO_USER"),
|
|
os.Getenv("MONGO_PASS"),
|
|
host,
|
|
))
|
|
opts = opts.SetCompressors([]string{"snappy", "zlib", "zstd"})
|
|
MongoClient, err = mongo.Connect(opts)
|
|
if err != nil {
|
|
log.Fatalln(err)
|
|
}
|
|
}
|
|
|
|
func GetMongoCollection(db *Context, name string) *mongo.Collection {
|
|
return db.Mongo.Database(os.Getenv("MONGO_NAME")).Collection(name)
|
|
}
|