| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package database
- import (
- "context"
- zapLogger "fwh-toolbox-server/logger"
- "strings"
- "time"
- "go.mongodb.org/mongo-driver/mongo"
- "go.mongodb.org/mongo-driver/mongo/options"
- )
- var MongoClient *mongo.Client
- var MongoDb *mongo.Database
- func InitMongo(uri string) (*mongo.Client, error) {
- ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
- defer cancel()
- client, err := mongo.Connect(ctx, options.Client().ApplyURI(uri))
- if err != nil {
- zapLogger.Sugar.Errorln("Mongo connect error: ", err)
- return nil, err
- }
- if err := client.Ping(ctx, nil); err != nil {
- zapLogger.Sugar.Errorln("Mongo ping error: ", err)
- return nil, err
- }
- MongoClient = client
- zapLogger.Sugar.Infoln("MongoDB connected: ", uri)
- parts := strings.Split(uri, "/")
- dbName := parts[len(parts)-1] // 最后一段就是数据库名
- MongoDb = client.Database(dbName)
- return client, nil
- }
- func GetCollection(collName string) *mongo.Collection {
- return MongoDb.Collection(collName)
- }
|