2025-03-23 16:28:38 +08:00

46 lines
908 B
Go

package impl
import (
"context"
"gitlab.com/go-course-project/go17/devcloud-mini/maudit/apps/event"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo/options"
)
// 存储
// 选择MongoDB
func (i *impl) SaveEvent(ctx context.Context, in *event.EventSet) error {
i.log.Debug().Msgf("events: %s", in)
_, err := i.col.InsertMany(ctx, in.ToDocs())
if err != nil {
return err
}
return nil
}
// 查询
func (i *impl) QueryEvent(ctx context.Context, in *event.QueryEventRequest) (*event.EventSet, error) {
set := event.NewEventSet()
filter := bson.M{}
opt := options.Find()
opt.SetLimit(int64(in.PageSize))
opt.SetSkip(in.ComputeOffset())
cursor, err := i.col.Find(ctx, filter, opt)
if err != nil {
return nil, err
}
for cursor.Next(ctx) {
e := event.NewEvent()
if err := cursor.Decode(e); err != nil {
return nil, err
}
set.Add(e)
}
return set, nil
}