| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package database
- import (
- "context"
- "log"
- "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 {
- log.Fatal("Mongo connect error:", err)
- return nil, err
- }
- if err := client.Ping(ctx, nil); err != nil {
- log.Fatal("Mongo ping error:", err)
- return nil, err
- }
- MongoClient = client
- log.Println("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)
- }
|