Query Data

This guide shows you how to query data using CQL models.

Finding Records

Find by ID

user = User.find(1)           # Returns User or raises
user = User.find?(1)          # Returns User or nil

Find by Attributes

user = User.find_by(email: "alice@example.com")
user = User.find_by?(email: "alice@example.com")  # Returns nil if not found

Find All

users = User.all  # Returns Array(User)

First and Last

first_user = User.first
last_user = User.last
oldest = User.order(created_at: :asc).first

Filtering with Where

Basic Where

Multiple Conditions

Where with Operators

Chaining Where

Ordering

Limiting and Offsetting

Selecting Columns

Aggregations

Count

Sum, Average, Min, Max

Group By

Joins

Basic Join

Left Join

Through Associations

Scopes

Define reusable queries:

Raw SQL

Execute Raw Query

Execute Raw Statement

Complex Queries

Eager Loading

Avoid N+1 queries:

Existence Checks

See Also

Last updated

Was this helpful?