Help with stoping Dupilcate rows in database

Hi Guys just to pick your brains, i want an overall rating and numRatings to be sent to my Members Db via code, so i can then display it on a repeater on another static page which all the info/elements are linked via a dataset to the members db, i have used wix’s api and did an toSave from the profile page that displays the overall rating, and had that data sent to the members db, but the problem is its just adding extra rows with the same data, so my repeater is showing 5 or more of the same profiles all with the same rating here are some pics and my code to see whats clearly happening, the problem part of the code is at the bottom under the add review onClick

import wixData from ‘wix-data’;
import wixWindow from ‘wix-window’;
import { session } from ‘wix-storage’;
import wixLocation from ‘wix-location’;
import wixUsers from ‘wix-users’;

let title;

$w.onReady( function () {
title = $w(‘#dynamicDataset’).getCurrentItem();
initReviews();
});

async function initReviews() {
await $w(‘#Reviews’).setFilter(wixData.filter().eq(‘titleId’, title._id));
showReviews();
loadStatistics();
}

async function loadStatistics() {
const stats = await wixData.get(‘review-stats’, title._id);
if (stats) {
let avgRating = (Math.round(stats.rating * 10 / stats.count) / 10);
let percentRecommended = Math.round(stats.recommended / stats.count * 100);
let ratings = $w(‘#generalRatings’);
ratings.rating = avgRating;
ratings.numRatings = stats.count;
$w(‘#recoPercent’).text = ${percentRecommended} % would recommend;
$w(‘#generalRatings’).show();
} else {
$w(‘#recoPercent’).text = ‘There are no reviews or ratings yet…’;
}
$w(‘#recoPercent’).show();

const stats2 = await wixData.get(‘review-stats’, title._id);
if (stats2) {
let avgRating = (Math.round(stats2.costsRating * 5 / stats2.countCosts) / 5);
let costsRating = $w(‘#costsRating2’);
costsRating.rating = avgRating;
costsRating.numRatings = stats.countCosts;
$w(‘#costsRating2’).show();
} else {
$w(‘#noRatings4’).text = ‘No ratings yet…’;
}
$w(‘#noRatings4’).show();

const stats3 = await wixData.get(‘review-stats’, title._id);
if (stats3) {
let AverageRating = (Math.round(stats3.cleanlinessRating * 10 / stats3.countCleanlinessRatings) / 10);
let cleanlinessRating = $w(‘#cleanlinessRating’);
cleanlinessRating.rating = AverageRating;
cleanlinessRating.numRatings = stats.countCleanlinessRatings;
$w(‘#cleanlinessRating’).show();
} else {
$w(‘#noRatings3’).text = ‘No ratings yet…’;
}
$w(‘#noRatings3’).show();

const stats4 = await wixData.get(‘review-stats’, title._id);
if (stats4) {
let averageRating = (Math.round(stats4.reliabilityRating * 10 / stats4.countReliabilityRatings) / 10);
let reliabilityRating = $w(‘#reliabilityRating’);
reliabilityRating.rating = averageRating;
reliabilityRating.numRatings = stats.countReliabilityRatings;
$w(‘#reliabilityRating’).show();
console.log(averageRating)
} else {
$w(‘#noRating2’).text = ‘No ratings yet…’;
}
$w(‘#noRating2’).show();

const stats5 = await wixData.get(‘review-stats’, title._id);
if (stats5) {
let averag = (Math.round(stats5.workStandardRating * 10 / stats5.countWorkStandardRatings) / 10);
let workStandardRating = $w(‘#workStandardRating’);
workStandardRating.rating = averag;
workStandardRating.numRatings = stats.countWorkStandardRatings;
$w(‘#workStandardRating’).show();
} else {
$w(‘#noRatings’).text = ‘No ratings yet…’;
}
$w(‘#noRatings’).show();
}

export function reviewsRepeater_itemReady($item, itemData, index) {
if (itemData.recommends) {
$item(‘#recommendation’).text = ‘I recommend this Trader.’;
} else {
$item(‘#recommendation’).text = “I don’t recommend this Trader.”;
}
if (itemData.photo) {
$item(‘#reviewImage’).src = itemData.photo;
$item(‘#reviewImage’).expand();
}
$item(‘#oneRating’).rating = itemData.rating;
let date = itemData._createdDate;
$item(‘#submissionTime’).text = date.toLocaleString();

}

export function showReviews() {
if ($w(‘#Reviews’).getTotalCount() > 0) {
$w(‘#reviewsRepeater’).expand();
} else {
$w(‘#reviewsRepeater’).collapse();
}
}

export async function addReview_click(event, $w) {
let word = $w(‘#traderProImage’).src;
let words = $w(‘#busName1’).text;
let words7 = $w(‘#recoPercent’).text;
let busEmail = $w(‘#companyEmail’).value;
session.setItem(“searchWord2”, word);
session.setItem(“searchWord3”, words);
session.setItem(“searchWord10”, words7);
session.setItem(“companyEmail2”, busEmail);

const dataForLightbox = {
titleId: title._id
};
let result = await wixWindow.openLightbox(‘Review Box’, dataForLightbox);
$w(‘#Reviews’).refresh();
loadStatistics();
$w(‘#thankYouMessage’).show();

let toSave = {

    titleId: title._id, 

“numRatings”: $w(“#generalRatings”).numRatings,
“overallRatings”: $w(“#generalRatings”).rating,
“traderBusinessName”: $w(“#busName1”).text,
“profilePicture”: $w(“#traderProImage”).src,
“workArea”: $w(‘#workArea’).value,
“serviceProvided”: $w(“#serviceProvided”).text,
“landline”: $w(“#landline”).value,
“mobile”: $w(“#mobile”).value,
“websiteInfo”: $w(“#websiteInfo”).value,
“businessEmailAddress”: $w(“#companyEmail”).value,
};
wixData.save(“MemberProfile”, toSave)
.then( (results) => {
//see item below
} )
. catch ( (err) => {
let errorMsg = err;
});
}


Profile Page with the overall ratings

As you can see theres two of the same, highly appreciate it for help thanks