Skip to content

Query Scopes

Pie provides query scopes for reusable query logic and better code organization.

// Define scope
func ActiveScope(field string) pie.ScopeFunc {
return func(q *pie.Query) {
q.Where(field, "active")
}
}
// Use scope
users, err := session.Scopes(ActiveScope("status")).Find(ctx)
// Multiple scopes
users, err = session.Scopes(
ActiveScope("status"),
RecentScope("created_at", 30),
).Find(ctx)