package db import ( cherryApp "f1-game/internal/cherry_app" "fmt" clog "github.com/cherry-game/cherry/logger" ) // ver00001 测试用 type ver00001 struct { } // Version 手动自增,必需唯一 func (ver00001) Version() int32 { return 1 } func (ver00001) Enable() bool { return false } func (p ver00001) Execute() bool { clog.Infof("Execute %v, nodeID = %s", p.Version(), cherryApp.NodeID()) // models := make([]mongo.WriteModel, 0, len(data.MapMonsterFlushMap())) // for _, flushRow := range data.MapMonsterFlushMap() { // table := NewLogicMonsterFlushTable(cherryApp.NodeID(), flushRow) // tableBytes, err := bson.Marshal(table) // if err != nil { // clog.Errorf("[migrator - %d] marshal map monster flush table error: %v", p.Version(), err) // return false // } // // set update // update := bson.D{{Key: "$set", Value: bson.Raw(tableBytes)}} // // set filter // filter := bson.M{ // "_id": table.PrimaryValue(), // 利用自带的_id主键进行条件过滤 // } // // build *mongo.UpdateOneModel // model := mongo.NewUpdateOneModel().SetFilter(filter).SetUpdate(update).SetUpsert(true) // models = append(models, model) // } // ctx := context.Background() // mapMarchCollection := dbComponent.DB().Collection(nameDB.Table_LogicMonsterFlush) // ops := options.BulkWrite().SetOrdered(false) // result, err := mapMarchCollection.BulkWrite(ctx, models, ops) // if err != nil { // clog.Errorf("[migrator - %d] bulk write map monster flush table error: %v", p.Version(), err) // return false // } // clog.Infof("[migrator - %d] bulk write map monster flush table success: %d", p.Version(), result.ModifiedCount) return true } func (p ver00001) Desc() string { return fmt.Sprintf("[migrator - %d] Check World Datas", p.Version()) }