diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 28513f4a1..2352fed42 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -12,6 +12,7 @@ import ( "fmt" "github.com/go-redis/redis/v8" "github.com/gogo/protobuf/sortkeys" + "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" "math/rand" @@ -262,13 +263,15 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID st func (d *DataBases) GetUserMsgListByIndex(ID string, index int64) (*UserChat, error) { ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) - regex := fmt.Sprintf("^%s", ID) + regex := fmt.Sprintf("/^%s/", ID) findOpts := options.Find().SetLimit(1).SetSkip(index).SetSort(bson.M{"uid": 1}) var msgs []UserChat - cursor, err := c.Find(ctx, bson.M{"uid": bson.M{"$regex": regex}}, findOpts) + cursor, err := c.Find(ctx, bson.M{"uid": bson.M{"$regex": primitive.Regex{Pattern: regex}}}, findOpts) if err != nil { return nil, utils.Wrap(err, "") } + v, err := cursor.Current.Values() + log.NewInfo("", "values", v, err) err = cursor.Decode(&msgs) if err != nil { return nil, utils.Wrap(err, fmt.Sprintf("cursor is %s", cursor.Current.String()))