mongo.go 922 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package database
  2. import (
  3. "context"
  4. "log"
  5. "strings"
  6. "time"
  7. "go.mongodb.org/mongo-driver/mongo"
  8. "go.mongodb.org/mongo-driver/mongo/options"
  9. )
  10. var MongoClient *mongo.Client
  11. var MongoDb *mongo.Database
  12. func InitMongo(uri string) (*mongo.Client, error) {
  13. ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
  14. defer cancel()
  15. client, err := mongo.Connect(ctx, options.Client().ApplyURI(uri))
  16. if err != nil {
  17. log.Fatal("Mongo connect error:", err)
  18. return nil, err
  19. }
  20. if err := client.Ping(ctx, nil); err != nil {
  21. log.Fatal("Mongo ping error:", err)
  22. return nil, err
  23. }
  24. MongoClient = client
  25. log.Println("MongoDB connected:", uri)
  26. parts := strings.Split(uri, "/")
  27. dbName := parts[len(parts)-1] // 最后一段就是数据库名
  28. MongoDb = client.Database(dbName)
  29. return client, nil
  30. }
  31. func GetCollection(collName string) *mongo.Collection {
  32. return MongoDb.Collection(collName)
  33. }