Compare commits

...

1 Commits

Author SHA1 Message Date
c320bb3d90 v0.0.170 2023-07-17 12:42:49 +02:00
2 changed files with 20 additions and 2 deletions

View File

@@ -1,5 +1,5 @@
package goext
const GoextVersion = "0.0.169"
const GoextVersion = "0.0.170"
const GoextVersionTimestamp = "2023-07-05T19:27:49+0200"
const GoextVersionTimestamp = "2023-07-17T12:42:49+0200"

View File

@@ -2,6 +2,7 @@ package wmo
import (
"context"
"errors"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
@@ -36,3 +37,20 @@ func (c *Coll[TData]) AggregateOneOpt(ctx context.Context, pipeline mongo.Pipeli
return nil, nil
}
func (c *Coll[TData]) AggregateOne(ctx context.Context, pipeline mongo.Pipeline, opts ...*options.AggregateOptions) (TData, error) {
cursor, err := c.coll.Aggregate(ctx, pipeline, opts...)
if err != nil {
return *new(TData), err
}
if cursor.Next(ctx) {
v, err := c.decodeSingle(ctx, cursor)
if err != nil {
return *new(TData), err
}
return v, nil
}
return *new(TData), errors.New("no document in result")
}