top of page

Already took a look into CONSOLE ???

In this example you will see how -->  .distinct()   <--- is working.

To demonstrate this function, i took the example which you already know .....

https://russian-dima.wixsite.com/meinewebsite/repeater-problem

These are all the comments given in this example here .....

https://russian-dima.wixsite.com/meinewebsite/autoupdate-picture

We want to find only unique comments of a unique user, using ---> .distinct()

Searching for comments of USER ---> 57da6cbf-baea-4248-8b1c-e7e82fcc01f8    --->

GO

01/19 - 01/23

Klicken Sie hier, um eigene Inhalte hinzuzufügen oder verbinden Sie Datenquellen aus Ihrer Kollektion.

01/19 - 01/23

Klicken Sie hier, um eigene Inhalte hinzuzufügen oder verbinden Sie Datenquellen aus Ihrer Kollektion.

01/19 - 01/23

Klicken Sie hier, um eigene Inhalte hinzuzufügen oder verbinden Sie Datenquellen aus Ihrer Kollektion.

Importing neccassery APIs......

import wixUsers from 'wix-users';

import wixData from 'wix-data';

Creating one GLOBAL-VARIABLE...

var userId;

First-Step: Getting the right USER-ID (happens emidiately when page is ready).

$w.onReady(function() {console.log("START")

    userId = wixUsers.currentUser.id

    console.log ("Your-User-ID : " + wixUsers.currentUser.id)

})

Step-II: Creating the DISTINCT-FUNCTION.......

function myFunction () {

    wixData.query("Comments2")

    .eq("_owner""57da6cbf-baea-4248-8b1c-e7e82fcc01f8")  //<----- here normaly the  --> userId ! ! ! ---> .eq("_owner", userId)

    .distinct("comment")

    .then((results) => {

        if (results.items.length > 0) {

            let items = results._items;

            let firstItem = items[0];

            let length = results.length;

                console.log(results)

                console.log("Data-Length : " + length)

                console.log(items)

 

            let myNewData = []         //<------------- creating new Array[] where to put in new data.

 

            for (var i = 0; i < length; i++) { 

                myNewData.push({"_id": ( i ).toString(), "comment": items[ ]})   //<------- creating new Object{} NECCASSERY ! ! ! .

            }

            console.log(myNewData)

 

            $w('#repeater1').data = myNewData;      //<------- Send DATA to ---> REPEATER (myNewData is now an OBJECT ! ! ! )

            

            $w("#repeater1").onItemReady(($item, itemData, index) => {

                $item("#ID").text = itemData._id;                             //<------- populating REPEATER-VALUES / DATA --> (generated-ID)

                $item("#COMMENT").text = itemData.comment;   //<------- populating REPEATER-VALUES / DATA --> ( comment )

            })

        }

        else {  }

    })

    .catch((error) => {

        let errorMsg = error.message;

        let code = error.code;

    });

}

Step-III: Connection a BUTTON with the DISTINCT-function, to controll it....

export function button1_click(event) { myFunction() }

Explanation

After running DESTINCT-function, you will get not the same RESULTS and also not the same STRUCTURE back, like for example, when using -----> .find( ).

DISTINCT gives you back, just the values of the current REFERENCE-COLUMN ! ! ! + The USER-ID ! ! ! 

RESULTS

2020-08-28 11_48_04-TEST-TEST-TEST _ Wix

<--- Gives back the user-ID ---> THIS WAS MISSING ! ! ! ! 

ITEMS

ATTENTION ! ! ! ---> NOT --> results.items !! wrong !!    ---->  results._items !!! right !!!

items.png
2020-08-28 11_54_37-TEST-TEST-TEST _ Wix

Our own created OBJECT with NO-DUBLICATES ! ---> let myNewData = [] 

for (var i = 0; i < length; i++) { 

         myNewData.push(  { "_id": ( i ).toString( ), "comment": items[ i ] }  )   //<------- creating new Object{} NECCASSERY ! ! ! .

}

ATTENTION ! ! ! ---> "_id" ---> has to be a STRING ! ! !

More INFORMATION here....

bottom of page