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) }