package wmo import ( "context" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" ) func (c *Coll[TData]) Aggregate(ctx context.Context, pipeline mongo.Pipeline, opts ...*options.AggregateOptions) ([]TData, error) { cursor, err := c.coll.Aggregate(ctx, pipeline, opts...) if err != nil { return nil, err } res := make([]TData, 0, cursor.RemainingBatchLength()) err = cursor.All(ctx, &res) if err != nil { return nil, err } return res, nil }