> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# Resource: Items

# Type: WixDataQuery

# Action: find

# Link: https://dev.wix.com/docs/sdk/data-items-sdk/data/items/wix-data-query/find.md

## Description: Returns the items that match the query.

The `find()` method returns a Promise that resolves to the results found
by the query and some information about the results. The Promise is
rejected if `find()` is called with incorrect permissions or if any of the
methods used to refine the query is invalid.

Calling the `find()` method triggers the [`beforeQuery()`](https://dev.wix.com/docs/velo/api-reference/wix-data/hooks/before-query.md) and [`afterQuery()`](https://dev.wix.com/docs/velo/api-reference/wix-data/hooks/after-query.md) hooks if they have been defined.

> **Note:**
> Calling `find()` triggers hooks for the specified collection only. It doesn't trigger hooks for referenced collections.

Use the `options` parameter to override default preferences:
- Ensure the most up-to-date data is retrieved with `consistentRead`.
- Prevent hooks from running with `suppressHooks`.
- Get a count of all the items that match the query by setting `returnTotalCount` to `true`.

If you build a query and don't refine it with any `wixDataQuery` methods,
`find()` returns the entire collection.

## Schema:

```json
 Method: find(options)
 Description: Returns the items that match the query.  The `find()` method returns a Promise that resolves to the results found by the query and some information about the results. The Promise is rejected if `find()` is called with incorrect permissions or if any of the methods used to refine the query is invalid.  Calling the `find()` method triggers the [`beforeQuery()`](https://dev.wix.com/docs/velo/api-reference/wix-data/hooks/before-query.md) and [`afterQuery()`](https://dev.wix.com/docs/velo/api-reference/wix-data/hooks/after-query.md) hooks if they have been defined.  > **Note:** > Calling `find()` triggers hooks for the specified collection only. It doesn't trigger hooks for referenced collections.  Use the `options` parameter to override default preferences: - Ensure the most up-to-date data is retrieved with `consistentRead`. - Prevent hooks from running with `suppressHooks`. - Get a count of all the items that match the query by setting `returnTotalCount` to `true`.  If you build a query and don't refine it with any `wixDataQuery` methods, `find()` returns the entire collection.
 Method parameters:
   param name:  options | type: WixDataQueryOptions | description:  Configuration options for building the query. 
       - name: appOptions  | type: Record<string, any> | description:  Options for [querying Wix app collections](https://dev.wix.com/docs/develop-websites/articles/wix-apps/wix-app-collections/querying-wix-app-collections.md). 
       - name: consistentRead  | type: boolean | description:  When `true`, reads data from the primary database instance. This decreases performance but ensures data retrieved is up-to-date even immediately after an update. Learn more about [Wix Data and eventual consistency](https://dev.wix.com/docs/sdk/backend-modules/data/eventual-consistency.md). 
       - name: includeFieldGroups  | type: Array<string> | description:  Requests conditional fields. Currently used in App Collections. Please refer to app collection documentation for a list of valid values. 
       - name: includeReferences  | type: Array<DistinctIncludeReferences> | description:  Reference fields to resolve in the results. When specified, the referenced items are included in the response for the given fields.  Each entry identifies a reference `field` by name and an optional `limit` that caps the number of referenced items returned per queried item (relevant for multi-reference fields). 
             - name: field  | type: string | description:  none 
             - name: limit  | type: number | description:  none 
       - name: language  | type: string | description:  Language to translate result text into, in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. If provided, the result text is returned in the specified language. If not provided, the result text is not translated.  > **Note:** Translation for the specified language must be enabled for the collection in [Wix Multilingual](https://www.wix.com/app-market/wix-multilingual). 
       - name: returnTotalCount  | type: boolean | description:  When `true`, the query results include a total count property containing the totals of items matching query. Requesting total count slows down the query.  Default: `false` 
       - name: showDrafts  | type: boolean | description:  When `true`, operations include draft items. Read operations include draft items in their response, and write operations modify draft items.  Default: `false`. 
       - name: suppressHooks  | type: boolean | description:  Prevents hooks from running for the operation. Can only be used in the [backend code of a Wix site](https://dev.wix.com/docs/develop-websites/articles/coding-with-velo/backend-code/about-the-site-backend.md).  Default: `false`. 
 Return type: PROMISE<WixDataResult>
       - name: currentPage  | type: number | description:  Returns the index of the current results page number.  The `currentPage` is a zero-based index of the current page of results.  The page size is defined by the `limit()` method, can be retrieved using the `pageSize` property, and navigating through pages is done with the `prev()` and `next()` methods.  The `currentPage` property returns `undefined` if the query returned no results. 
       - name: items  | type: Array<undefined> | description:  Returns the items that match the query.  The current page of items retrieved by the query.  The page size is defined by the `limit()` method, can be retrieved using the `pageSize` property, and navigating through pages is done with the `prev()` and `next()` methods.  When no items match the query, the `items` array is empty. 
       - name: length  | type: number | description:  Returns the number of items in the current results page.  The page size is defined by the `limit()` method, can be retrieved using the `pageSize` property, and navigating through pages is done with the `prev()` and `next()` methods. 
       - name: pageSize  | type: number | description:  Returns the query page size.  The page size is defined by the `limit()` method, can be retrieved using the `pageSize` property, and navigating through pages is done with the `prev()` and `next()` methods. 
       - name: totalCount  | type: number | description:  Returns the total number of items that match the query.  The `totalCount` returns the total number of items that match the query, not just the number of items in the current page.  > **Note:** This property is only available when the query's `options.returnTotalCount` parameter is set to `true`. 
       - name: totalPages  | type: number | description:  Returns the total number of pages the query produced.  The page size is defined by the `limit()` method, can be retrieved using the `pageSize` property, and navigating through pages is done with the `prev()` and `next()` methods.  > **Note:** This property is only available when the query's `options.returnTotalCount` parameter is set to `true`. 
       Method: hasNext()
       Description: Indicates if the query has more results.
       Return type: PRIMITIVE<boolean>
       Method: hasPrev()
       Description: Indicates the query has previous results.
       Return type: PRIMITIVE<boolean>
       Method: next()
       Description: Retrieves the next page of query results.  The `next()` method retrieves the next page of query results.  The page size is defined by the `limit()` method, can be retrieved using the `pageSize` property, and navigating through pages is done with the `prev()` and `next()` methods.  If items are added or removed between calls to `next()` the values returned may change.  >**Note:** The `next()` method is not supported for [single-item collections](https://support.wix.com/en/article/cms-adding-and-setting-up-a-single-item-collection).
       Return type: PROMISE<WixDataResult>
       Method: prev()
       Description: Retrieves the previous page of query results.  The `prev()` method retrieves the previous page of query results.  The page size is defined by the `limit()` method, can be retrieved using the `pageSize` property, and navigating through pages is done with the `prev()` and `next()` methods.  If items are added or removed between calls to `prev()` the values returned may change.  >**Note:** The `prev()` method is not supported for [single-item collections](https://support.wix.com/en/article/cms-adding-and-setting-up-a-single-item-collection).
       Return type: PROMISE<WixDataResult>

```