# Show only Unique values in repeater

**URL:** <https://forum.wixstudio.com/t/show-only-unique-values-in-repeater/78594>\
**Category:** Ask the community\
**Tags:** wix-data, question, code, cms\
**Created:** [June 13, 2026, 9:22am UTC](https://forum.wixstudio.com/t/show-only-unique-values-in-repeater/78594 "2026-06-13T09:22:46Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gideon\_Skarzgard](https://sea1.discourse-cdn.com/wix/user_avatar/forum.wixstudio.com/gideon_skarzgard/32/87597_2.png) [@Gideon\_Skarzgard](https://forum.wixstudio.com/u/Gideon_Skarzgard)\
**Post date:** [June 13, 2026, 9:22am UTC](https://forum.wixstudio.com/t/show-only-unique-values-in-repeater/78594/1 "2026-06-13T09:22:46Z")

</div>

**Background:** I have a search input connected to a simple text repeater that returns values from a title field. So users can search by title & the repeater shows suggestions. I want it to only show unique values & I put together some code which works, but unsure if it’s good

**Q:** I’d like to just know if it’s correct & if it can be better/simpler, as the updated code is a lil complex for me to understand what’s going on

_Old code that doesn’t show only unique values:_

```javascript
    async function search(){
        const query = $w('#searchInput').value;
        const dataQueryResult = await wixData.query("Properties").contains("title", query).limit(20).find();

        const data = dataQueryResult.items;
        $w('#titleRepeater').data = data;
    }

```

_Updated code showing only unique values:_

```javascript
    async function search(){
        const query = $w('#searchInput').value;
        const dataQueryResult = await wixData.query("Properties").contains("title", query).limit(20).find();

        const uniqueData = dataQueryResult.items.filter((item, index, self) =>
            index === self.findIndex(i => i.title === item.title)
        );
        $w('#titleRepeater').data = uniqueData;
    }

```

---

<div class="post-metadata">

**Author:** ![kottravaipaalai](https://sea1.discourse-cdn.com/wix/user_avatar/forum.wixstudio.com/kottravaipaalai/32/23761_2.png) [@kottravaipaalai](https://forum.wixstudio.com/u/kottravaipaalai)\
**Post date:** [June 16, 2026, 12:37am UTC](https://forum.wixstudio.com/t/show-only-unique-values-in-repeater/78594/2 "2026-06-16T00:37:57Z")

</div>

@Gideon_Skarzgard

// ==========================================  
// YOUR ORIGINAL CODE  
// ==========================================

```javascript
async function search(){
const query = $w('#searchInput').value;

// Fetches all fields for up to 20 items
const dataQueryResult = await wixData
    .query("Properties")
    .contains("title", query)
    .limit(20)
    .find();

// Slow O(N²) loop running in user's browser
const uniqueData = dataQueryResult.items
    .filter((item, index, self) =>
        index === self.findIndex(i => i.title === item.title)
    );
    
// Binds raw database objects with full payloads
$w('#titleRepeater').data = uniqueData;
}

```

* * *

// ==========================================  
// OPTIMIZED VELO CODE  
// ==========================================

```javascript
async function search() {
try {
const query = $w('#searchInput').value;

    // Deduplicates on server; fetches ONLY titles
    const dataQueryResult = await wixData
        .query("Properties")
        .contains("title", query)
        .limit(20)
        .distinct("title"); 

    // Light O(N) mapping to create valid _ids
    const uniqueData = dataQueryResult.items
        .map((titleStr, index) => ({
            _id: `unique_${index}`, 
            title: titleStr
        }));

    // Binds tiny, crash-proof object payload
    $w('#titleRepeater').data = uniqueData;

} catch (error) {
    console.error("Search query failed:", error);
}

}

```

–Thanks

---

<div class="post-metadata">

**Author:** ![Gideon\_Skarzgard](https://sea1.discourse-cdn.com/wix/user_avatar/forum.wixstudio.com/gideon_skarzgard/32/87597_2.png) [@Gideon\_Skarzgard](https://forum.wixstudio.com/u/Gideon_Skarzgard)\
**Post date:** [June 16, 2026, 8:17pm UTC](https://forum.wixstudio.com/t/show-only-unique-values-in-repeater/78594/3 "2026-06-16T20:17:59Z")

</div>

Hi, I tried this, I like the approach, it shows unique results, but it worked quite wrongly. Unlike previously, it didn’t display the titles corresponding to the input, instead showed unmatching text. It parsed things from another field too that corresponds to the input, not just the title field. Few questions about this approach,

1. Does distinct() work here?
2. Could setting ‘unique’ there have caused this?
3. What’s titleStr?
