Код помогает предотвратить дублирование записи в базу данных 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;
  });
}
Другие вопросы по тегам