Код помогает предотвратить дублирование записи в базу данных wix при загрузке CSV-файла
Код помогает предотвратить дублирование записи при загрузке CSV-файла базы данных wix.
Я не могу запустить приведенный ниже код. Почему?
База данных: AmericanSamoa, Проверить повторяющийся столбец: originalConnectionDetails
Проверяя исходный URL-адрес ссылки в базе данных, я хочу предотвратить дублирование записей, если запись ранее была загружена с помощью файла csv.
Мой бэкэнд-код
import wixData from 'wix-data';
import request from "request-promise";
export async function AmericanSamoa_beforeInsert(item, context) {
if (item.originalConnectionDetails) {
item.originalConnectionDetails= await wixData.query('AmericanSamoa').ne('_id',
item._id).startsWith('originalConnectionDetails', item.originalConnectionDetails).find().then((x) =>
{
const total = x.totalCount;
if (total > 0) {
return `${item.originalConnectionDetails}-${total+1}`;
} else {
return item.originalConnectionDetails;
}
})
}
return item
}
1 ответ
Решение
Решение !
--- Этот код предотвращает дублирование записей (если они были ранее записаны в базу данных) во время загрузки файла CSV.
Однако в добавленном вами CSV-файле не должно быть возможности повторной записи. Потому что при первой загрузке не проверяются повторяющиеся записи в файле. Он проверяет файл csv в базе данных и загружает его.
Бэкэнд-код
import wixData from 'wix-data';
export function searchForDuplicates(value) {
return wixData.query("Afghanistan")
.eq("originalConnectionDetails", value)
.find()
.then((results) => {
return results.items.length;
})
.catch((err) => {
let errorMsg = err;
});
}
export function Afghanistan_beforeInsert(item) {
return searchForDuplicates(item.originalConnectionDetails).then((res) => {
if(res > 0) {
return Promise.reject("Duplicate");
}
return item;
});
}