25 lines
710 B
Go
25 lines
710 B
Go
package builder
|
|
|
|
import (
|
|
"github.com/tech/sendico/pkg/mservice"
|
|
"go.mongodb.org/mongo-driver/mongo"
|
|
)
|
|
|
|
type Pipeline interface {
|
|
Match(filter Query) Pipeline
|
|
Lookup(from mservice.Type, localField, foreignField, as Field) Pipeline
|
|
LookupWithPipeline(
|
|
from mservice.Type,
|
|
pipeline Pipeline, // your nested pipeline
|
|
as Field,
|
|
let *map[string]Field, // optional e.g. {"projRef": Field("$_id")}
|
|
) Pipeline
|
|
// unwind with functional options
|
|
Unwind(path Field, opts ...UnwindOption) Pipeline
|
|
Count(field Field) Pipeline
|
|
Group(groupBy Alias, accumulators ...GroupAccumulator) Pipeline
|
|
Project(projections ...Projection) Pipeline
|
|
ReplaceRoot(newRoot Expression) Pipeline
|
|
Build() mongo.Pipeline
|
|
}
|