---
title: Query
framework: swiftdata
role: symbol
role_heading: Structure
path: swiftdata/query
---

# Query

A type that fetches models using the specified criteria, and manages those models so they remain in sync with the underlying data.

## Declaration

```swift
@MainActor @preconcurrency struct Query<Element, Result> where Element : PersistentModel
```

## Mentioned in

Preserving your app’s model data across launches

## Topics

### Creating a query

- [init(_:animation:)](swiftdata/query/init(_:animation:).md)
- [init(filter:sort:animation:)](swiftdata/query/init(filter:sort:animation:).md)
- [init(filter:sort:order:animation:)](swiftdata/query/init(filter:sort:order:animation:)-1qfoj.md)
- [init(filter:sort:order:animation:)](swiftdata/query/init(filter:sort:order:animation:)-3qovd.md)
- [init(_:transaction:)](swiftdata/query/init(_:transaction:).md)
- [init(filter:sort:transaction:)](swiftdata/query/init(filter:sort:transaction:).md)
- [init(filter:sort:order:transaction:)](swiftdata/query/init(filter:sort:order:transaction:)-2bx9a.md)
- [init(filter:sort:order:transaction:)](swiftdata/query/init(filter:sort:order:transaction:)-8q7vs.md)

### Creating an unsorted, sectioned query

- [init(_:animation:sectionBy:)](swiftdata/query/init(_:animation:sectionby:)-2em2m.md)
- [init(_:animation:sectionBy:)](swiftdata/query/init(_:animation:sectionby:)-2pqhv.md)
- [init(_:transaction:sectionBy:)](swiftdata/query/init(_:transaction:sectionby:)-5814o.md)
- [init(_:transaction:sectionBy:)](swiftdata/query/init(_:transaction:sectionby:)-9sb87.md)

### Creating a sorted, sectioned query

- [init(filter:sort:animation:sectionBy:)](swiftdata/query/init(filter:sort:animation:sectionby:)-5wk67.md)
- [init(filter:sort:animation:sectionBy:)](swiftdata/query/init(filter:sort:animation:sectionby:)-8e78r.md)
- [init(filter:sort:order:animation:sectionBy:)](swiftdata/query/init(filter:sort:order:animation:sectionby:)-2e9oh.md)
- [init(filter:sort:order:animation:sectionBy:)](swiftdata/query/init(filter:sort:order:animation:sectionby:)-2e9oh.md)
- [init(filter:sort:order:animation:sectionBy:)](swiftdata/query/init(filter:sort:order:animation:sectionby:)-4pdmu.md)
- [init(filter:sort:order:animation:sectionBy:)](swiftdata/query/init(filter:sort:order:animation:sectionby:)-6b4tq.md)
- [init(filter:sort:order:animation:sectionBy:)](swiftdata/query/init(filter:sort:order:animation:sectionby:)-7d51r.md)
- [init(filter:sort:order:transaction:sectionBy:)](swiftdata/query/init(filter:sort:order:transaction:sectionby:)-5ym3e.md)
- [init(filter:sort:order:transaction:sectionBy:)](swiftdata/query/init(filter:sort:order:transaction:sectionby:)-8hx6i.md)
- [init(filter:sort:order:transaction:sectionBy:)](swiftdata/query/init(filter:sort:order:transaction:sectionby:)-930wx.md)
- [init(filter:sort:order:transaction:sectionBy:)](swiftdata/query/init(filter:sort:order:transaction:sectionby:)-l6d4.md)
- [init(filter:sort:transaction:sectionBy:)](swiftdata/query/init(filter:sort:transaction:sectionby:)-2b0zd.md)
- [init(filter:sort:transaction:sectionBy:)](swiftdata/query/init(filter:sort:transaction:sectionby:)-965mg.md)

### Getting query configuration

- [modelContext](swiftdata/query/modelcontext.md)
- [fetchError](swiftdata/query/fetcherror.md)

### Accessing the value

- [wrappedValue](swiftdata/query/wrappedvalue.md)

### Accessing sections

- [sections](swiftdata/query/sections.md)
- [ResultsSectionCollection](swiftdata/resultssectioncollection.md)

## Relationships

### Conforms To

- [DynamicProperty](swiftui/dynamicproperty.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Model fetch

- [Filtering and sorting persistent data](swiftdata/filtering-and-sorting-persistent-data.md)
- [Query()](swiftdata/query().md)
- [Additional query macros](swiftdata/additionalquerymacros.md)
- [FetchDescriptor](swiftdata/fetchdescriptor.md)
