> 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: wix-data ## Namespace: wix-data-distinct ## Article: Introduction ## Article Link: https://dev.wix.com/docs/velo/apis/wix-data/wix-data-distinct/introduction.md ## Article Content: # Introduction The `WixDataDistinct` methods allow you to refine a distinct query before it runs, as well as sort and limit its results. A distinct query returns unique values for the specified property, without duplicates. To refine the distinct query, use `WixDataDistinct` methods in the [`beforeDistinct()`](https://dev.wix.com/docs/velo/events-service-plugins/data/hooks/wix-data-hooks/before-distinct.md) hook. This hook is triggered when you call [`distinct()`](https://dev.wix.com/docs/velo/api-reference/wix-data/wix-data-query/distinct.md), and runs before the distinct query operation executes. For example, the following hook refines the distinct query by adding an age requirement, and then sorts the results in ascending order: ```javascript // In site backend code import wixData from "wix-data"; wixData .query("customers") .distinct("lastName") // Triggers the beforeDistinct() hook .then((results) => { if (results.items.length > 0) { let items = results.items; } else { // handle case where no matching items found } }) .catch((error) => { let errorMsg = error.message; let code = error.code; }); // In data.js export function myCollection_beforeDistinct(distinct, context) { // Get the current filter const currentFilter = distinct.getFilter(); // Add an age requirement const updatedFilter = currentFilter.ge("age", 18); // Set the updated filter and sort the results const updatedDistinctQuery = distinct.filter(updatedFilter) .ascending(); return updatedDistinctQuery; } ``` You can further refine the distinct query by chaining additional `WixDataDistinct` methods.