Commit 8db23cb62ad243d9864417d783b522c453dc4b43

Authored by zhangqijia
1 parent 7cf63b79

fix: 批量删除装备 mongodb deletemany的问题

1   -Subproject commit 4011876adebf1d046b150ec77e1714d25aa7cb35
  1 +Subproject commit ca2a212e0e5ed06b6f33e3c4bd4570976a169010
... ...
cmd/gameserver/action/RoleAction.go
... ... @@ -173,10 +173,7 @@ func EquipmentDelRpc(role *models.RoleModel, msg components.IMessage) (int32, in
173 173 logger.Error("loginRpc err: %v", err)
174 174 return 1, nil
175 175 }
176   - filter := make(bson.D, 5)
177   - for _, id := range req.Id {
178   - filter = append(filter, bson.E{Key: "id", Value: id})
179   - }
  176 + filter := bson.D{{"id", bson.D{{"$in", req.Id}}}}
180 177 if err := mongoproxy.DelMany("equipment", filter); err != nil {
181 178 logger.Error(err.Error())
182 179 return 2, nil
... ...
cmd/gameserver/action/RoleAction_test.go
... ... @@ -2,8 +2,10 @@ package action
2 2  
3 3 import (
4 4 "fmt"
  5 + "go.mongodb.org/mongo-driver/bson"
5 6 "math/rand"
6 7 "pro2d/common"
  8 + "pro2d/common/db/mongoproxy"
7 9 "pro2d/common/db/redisproxy"
8 10 "pro2d/common/logger"
9 11 "testing"
... ... @@ -20,3 +22,16 @@ func TestGetActionMap(t *testing.T) {
20 22 name := getRandomName()
21 23 fmt.Println(name)
22 24 }
  25 +
  26 +func TestEquipmentDelRpc(t *testing.T) {
  27 + err := mongoproxy.ConnectMongo(common.GlobalConf.GameConf.MongoConf, common.GlobalConf.GameConf.ID)
  28 + if err != nil {
  29 + logger.Error(err)
  30 + return
  31 + }
  32 +
  33 + filter := bson.D{{"id", bson.D{{"$in", bson.A{"10000020021", "10000020037"}}}}}
  34 + if err := mongoproxy.DelMany("equipment", filter); err != nil {
  35 + logger.Error(err.Error())
  36 + }
  37 +}
... ...
common/db/mongoproxy/mongoplugin.go
... ... @@ -90,7 +90,8 @@ func DelOne(coll string, key string, value interface{}) error {
90 90 }
91 91  
92 92 func DelMany(coll string, filter bson.D) error {
93   - _, err := mongoDatabase.Collection(coll).DeleteMany(context.TODO(), filter, nil)
  93 + r, err := mongoDatabase.Collection(coll).DeleteMany(context.TODO(), filter, nil)
  94 + logger.Debug(r.DeletedCount)
94 95 return err
95 96 }
96 97  
... ...