---
title: "Query(filter:sort:order:transaction:)"
framework: swiftdata
role: symbol
role_heading: Macro
path: "swiftdata/query(filter:sort:order:transaction:)-6kkiu"
---

# Query(filter:sort:order:transaction:)

Fetches a subset of the attached model type, in a specific order, by sorting on a nonoptional attribute.

## Declaration

```swift
@attached(accessor) @attached(peer, names: prefixed(`_`)) macro Query<Value, Element>(filter: Predicate<Element>? = nil, sort keyPath: KeyPath<Element, Value>, order: SortOrder = .forward, transaction: Transaction? = nil) where Value : Comparable, Element : PersistentModel
```

## Parameters

- `filter`: The logical condition the query uses to determine if it returns a specific model instance.
- `keyPath`: The keypath of the nonoptional attribute to sort by.
- `order`: The order of the sort.
- `transaction`: The transaction to use when updates to the fetched models trigger user interface changes.

## See Also

### Predicate-based queries

- [Query(filter:sort:animation:)](swiftdata/query(filter:sort:animation:).md)
- [Query(filter:sort:order:animation:)](swiftdata/query(filter:sort:order:animation:)-80h6f.md)
- [Query(filter:sort:order:animation:)](swiftdata/query(filter:sort:order:animation:)-pb15.md)
- [Query(filter:sort:animation:sectionBy:)](swiftdata/query(filter:sort:animation:sectionby:)-1s3xp.md)
- [Query(filter:sort:animation:sectionBy:)](swiftdata/query(filter:sort:animation:sectionby:)-82mot.md)
- [Query(filter:sort:order:animation:sectionBy:)](swiftdata/query(filter:sort:order:animation:sectionby:)-132tv.md)
- [Query(filter:sort:order:animation:sectionBy:)](swiftdata/query(filter:sort:order:animation:sectionby:)-66vd3.md)
- [Query(filter:sort:order:animation:sectionBy:)](swiftdata/query(filter:sort:order:animation:sectionby:)-75r20.md)
- [Query(filter:sort:order:animation:sectionBy:)](swiftdata/query(filter:sort:order:animation:sectionby:)-7o0vo.md)
- [Query(filter:sort:transaction:)](swiftdata/query(filter:sort:transaction:).md)
- [Query(filter:sort:order:transaction:)](swiftdata/query(filter:sort:order:transaction:)-8tk8u.md)
- [Query(filter:sort:order:transaction:sectionBy:)](swiftdata/query(filter:sort:order:transaction:sectionby:)-3cn7t.md)
- [Query(filter:sort:order:transaction:sectionBy:)](swiftdata/query(filter:sort:order:transaction:sectionby:)-6c6ho.md)
- [Query(filter:sort:order:transaction:sectionBy:)](swiftdata/query(filter:sort:order:transaction:sectionby:)-9mbr6.md)
- [Query(filter:sort:order:transaction:sectionBy:)](swiftdata/query(filter:sort:order:transaction:sectionby:)-i779.md)
