package db

//
//import (
//	"context"
//	"fmt"
//	cprofile "github.com/mhaya/profile"
//	"go.mongodb.org/mongo-driver/mongo"
//	"go.mongodb.org/mongo-driver/mongo/options"
//	"log"
//)
//
//const (
//	// MongoDB连接信息
//	mongoURI = "mongodb://mhaya:AaPXRfQLqMe6ns7@boss-io.cluster-c5uigyoe8wcg.ap-southeast-1.docdb.amazonaws.com:27017/?replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false&tls=true&tlsInsecure=true"
//
//	databaseName     = "db_mhaya"
//	collectionName   = "numbers"
//	totalRecords     = 100000
//	progressInterval = totalRecords / 100 // 每插入1%的数据就打印一次
//	batchSize        = 1000
//)
//
//type (
//	// HashDb hash by group id
//	HashDb func(dbMaps map[string]*mongo.Database) string
//)
//
////func GetMongoClient() *mongo.Client {
////	// 连接到 MongoDB
////	client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI))
////	if err != nil {
////		log.Fatalf("无法连接到 MongoDB: %v", err)
////	}
////
////	// 连接到数据库
////	err = client.Connect(context.Background())
////	if err != nil {
////		log.Fatalf("无法连接到数据库: %v", err)
////	}
////	defer client.Disconnect(context.Background())
////
////	// 批量插入数据并打印进度
////	//insertDataWithProgress(client, data)
////
////	// 插入完成'
////	fmt.Println("数据插入完成!")
////	return client
////}
//
//func GetMongoClient() *mongo.Client {
//
//	mongoConfig := cprofile.GetConfig("mongo")
//	if mongoConfig.LastError() != nil {
//		panic("`mongo` property not exists in profile file.")
//	}
//
//	var client *mongo.Client
//
//	var dbMap map[string]map[string]*mongo.Database
//	for _, groupId := range mongoConfig.Keys() {
//		dbMap[groupId] = make(map[string]*mongo.Database)
//
//		dbGroup := mongoConfig.GetConfig(groupId)
//		for i := 0; i < dbGroup.Size(); i++ {
//			item := dbGroup.GetConfig(i)
//
//			var (
//				uri = item.GetString("uri")
//			)
//
//			// 连接到 MongoDB
//			client, err := mongo.NewClient(options.Client().ApplyURI(uri))
//			if err != nil {
//				log.Fatalf("无法连接到 MongoDB: %v", err)
//			}
//
//			// 连接到数据库
//			err = client.Connect(context.Background())
//			if err != nil {
//				log.Fatalf("无法连接到数据库: %v", err)
//			}
//			defer client.Disconnect(context.Background())
//
//			// 插入完成'
//			fmt.Println("数据插入完成!")
//		}
//	}
//	return client
//}
