> 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 # Method name: find(options: WixDataQueryOptions) # Method package: wixData # Method menu location: wixData --> WixDataQuery --> find # Method Link: https://dev.wix.com/docs/velo/apis/wix-data/wix-data-query/find.md # Method Description: Returns the items that match the query. The `find()` function 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 functions used to refine the query is invalid. Calling the `find()` function triggers the [`beforeQuery()`](wix-data.Hooks.html#beforeQuery) and [`afterQuery()`](wix-data.Hooks.html#afterQuery) hooks if they have been defined. Use the `options` parameter to override default preferences: + Override permission checks with `suppressAuth`. + Ensure the most up-to-date data is retrieved with `consistentRead`. + Prevent hooks from running with `suppressHooks`. + Speed up execution with `omitTotalCount`, if you don't need a count of items matching the query. If you build a query and don't refine it with any `wixDataQuery` functions, `find()` returns the entire collection. > **Notes:**: > - Calling `find()` triggers hooks for the specified collection only. It doesn’t trigger hooks for referenced collections. > - `find()` returns the full items that match the query. To specify which fields to return for each retrieved item, use the `fields()` method. # Method Code Examples: *** Note: do not assume any prop names or enum values other than the ones in the example. ## Perform a find on a query ```javascript query.find() .then((results) => { if(results.items.length > 0) { let items = results.items; let firstItem = items[0]; let totalCount = results.totalCount; let pageSize = results.pageSize; let currentPage = results.currentPage; let totalPages = results.totalPages; let hasNext = results.hasNext(); let hasPrev = results.hasPrev(); let length = results.length; let query = results.query; } else { // handle case where no matching items found } }) .catch((error) => { let errorMsg = error.message; let code = error.code; }); ``` ## Create a query and run it ```javascript import wixData from 'wix-data'; // ... wixData.query("myCollection") .find() .then((results) => { if(results.items.length > 0) { let items = results.items; let firstItem = items[0]; let totalCount = results.totalCount; let pageSize = results.pageSize; let currentPage = results.currentPage; let totalPages = results.totalPages; let hasNext = results.hasNext(); let hasPrev = results.hasPrev(); let length = results.length; let query = results.query; } else { // handle case where no matching items found } }) .catch((error) => { let errorMsg = error.message; let code = error.code; }); ``` ## Create a query, add functions to the query, and run it ```javascript import wixData from 'wix-data'; // ... wixData.query("myCollection") .eq("status", "active") .gt("age", 25) .ascending("last_name", "first_name") .find() .then((results) => { if (results.items.length > 0) { let items = results.items; let firstItem = items[0]; let totalCount = results.totalCount; let pageSize = results.pageSize; let currentPage = results.currentPage; let totalPages = results.totalPages; let hasNext = results.hasNext(); let hasPrev = results.hasPrev(); let length = results.length; let query = results.query; } else { // handle case where no matching items found } }) .catch((error) => { let errorMsg = error.message; let code = error.code; }); ``` ## Create a query with options and run it ```javascript import wixData from 'wix-data'; // ... let options = {     "suppressAuth": true,     "suppressHooks": true }; wixData.query("myCollection") .find(options) .then((results) => { if(results.items.length > 0) { let items = results.items; let firstItem = items[0]; } else { // handle case where no matching items found } }) .catch((error) => { let errorMsg = error.message; let code = error.code; }); ``` ---