123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- package mdb
- import (
- "context"
- "log"
- "github.com/mhaya/game/game_cluster/internal/constant"
- "go.mongodb.org/mongo-driver/bson"
- "go.mongodb.org/mongo-driver/mongo"
- "go.mongodb.org/mongo-driver/mongo/options"
- )
- func SetIndex() {
- err := SetCashOutRecordIndex()
- if err != nil {
- log.Println(err)
- }
- err = SetPlayerIndex()
- if err != nil {
- log.Println(err)
- }
- err = SetPlayerDailyRecordIndex()
- if err != nil {
- log.Println(err)
- }
- err = SetCNameAccountIndex()
- if err != nil {
- log.Println(err)
- }
- }
- func Unique(indexModel mongo.IndexModel, tableName string) error {
- _, err := MDB.Collection(tableName).Indexes().CreateOne(context.Background(), indexModel)
- if err != nil {
- return err
- }
- return nil
- }
- // Index 普通的联合索引
- func Index(indexModel mongo.IndexModel, tableName string) error {
- _, err := MDB.Collection(tableName).Indexes().CreateOne(context.Background(), indexModel)
- if err != nil {
- return err
- }
- return nil
- }
- func SetCashOutRecordIndex() error {
- keys := bson.D{
- {"userName", 1},
- {"nickName", 1},
- {"status", 1},
- {"type", 1},
- }
- indexModel := mongo.IndexModel{
- Keys: keys,
- }
- err := Index(indexModel, constant.CNameCashOutRecord)
- if err != nil {
- return err
- }
- return nil
- }
- func SetPlayerIndex() error {
- keys := bson.D{
- {"nickName", 1},
- }
- indexModel := mongo.IndexModel{
- Keys: keys,
- }
- err := Index(indexModel, constant.CNamePlayer)
- if err != nil {
- return err
- }
- keysUnique := bson.D{
- {"userName", 1},
- }
- indexModelUnique1 := mongo.IndexModel{
- Keys: keysUnique,
- Options: options.Index().SetUnique(true), // 设置索引选项,例如唯一索引
- }
- err = Unique(indexModelUnique1, constant.CNamePlayer)
- if err != nil {
- return err
- }
- keysUnique1 := bson.D{
- {"openId", 1},
- }
- indexModelUnique := mongo.IndexModel{
- Keys: keysUnique1, // 1 表示升序,-1 表示降序
- Options: options.Index().SetUnique(true), // 设置索引选项,例如唯一索引
- }
- err = Unique(indexModelUnique, constant.CNamePlayer)
- if err != nil {
- return err
- }
- return nil
- }
- func SetPlayerDailyRecordIndex() error {
- keys := bson.D{
- {"userName", 1},
- {"status", 1},
- {"type", 1},
- }
- indexModel := mongo.IndexModel{
- Keys: keys,
- }
- err := Index(indexModel, constant.CNamePlayerDailyRecord)
- if err != nil {
- return err
- }
- return nil
- }
- func SetCNameAccountIndex() error {
- keys := bson.D{
- {"userName", 1},
- }
- indexModel := mongo.IndexModel{
- Keys: keys,
- Options: options.Index().SetUnique(true), // 设置索引选项,例如唯一索引
- }
- err := Unique(indexModel, constant.CNameAccount)
- if err != nil {
- return err
- }
- keysUnique := bson.D{
- {"openId", 1},
- }
- indexModelUnique := mongo.IndexModel{
- Keys: keysUnique, // 1 表示升序,-1 表示降序
- Options: options.Index().SetUnique(true), // 设置索引选项,例如唯一索引
- }
- err = Unique(indexModelUnique, constant.CNameAccount)
- if err != nil {
- return err
- }
- return nil
- }
|