Starting Queries

Queries are built using a fluent, chainable API. All operations start from a model instance.


Users.Get()     // SELECT
Users.Create()  // INSERT
Users.Update()  // UPDATE
                    

Fetching Data (SELECT)


// Fetch all rows
results, err := Users.Get().Fetch()

// Fetch with condition
results, err := Users.Get().
    Where(Users.Fields.UserName).
    Is("alice").
    Fetch()

// Fetch a single row
user, err := Users.Get().
    Where(Users.Fields.UserId).
    Is("u123").
    First()
                    

Creating Records (INSERT)


err := Users.Create().
    Set(Users.Fields.UserId).To("u123").
    Set(Users.Fields.UserName).To("alice").
    Set(Users.Fields.Password).To("securepass").
    Exec()
                    

Updating Records (UPDATE)


// Update with WHERE
err := Users.Get().
    Where(Users.Fields.UserId).
    Is("u123").
    Set(Users.Fields.Password).
    To("newpass").
    Exec()

// Using Update()
err := Users.Update(nil).
    Where(Users.Fields.UserId).
    Is("u123").
    Set(Users.Fields.Password).
    To("updated").
    Exec()
                    

Deleting Records (DELETE)


// Delete matching rows
err := Users.Get().
    Where(Users.Fields.UserId).
    Is("u123").
    Delete()
                    

WHERE Conditions


Is(value)
IsNot(value)
GreaterThan(value)
LessThan(value)
GreaterThanOrEqual(value)
LessThanOrEqual(value)
Like(pattern)
In(values...)
NotIn(values...)
Between(min, max)
IsNull()
IsNotNull()
                    

Combining Conditions


Users.Get().
    Where(Users.Fields.UserName).Is("alice").
    And().
    Where(Users.Fields.UserId).Is("u123")

Users.Get().
    Where(Users.Fields.FirstName).Is("Alice").
    Or().
    Where(Users.Fields.FirstName).Is("Bob")
                    

Sorting & Grouping


OrderBy("createdAt DESC")
GroupBy("status")
                    

Pagination


Limit(20)
Offset(40)

// Page helper (1-indexed)
Page(2, 20)
                    

Executing Queries


Fetch()   // returns []map[string]interface{}
First()   // returns map[string]interface{}
Exec()    // INSERT / UPDATE
Delete()  // DELETE
                    

Next Steps