首页 > 解决方案 > 代码有助于防止在 wix 数据库 csv 文件上传中重复记录

问题描述

代码有助于防止在 wix 数据库 csv 文件上传中重复记录。

我无法运行下面的代码。为什么?

数据库: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
}

标签: databaseuploadduplicatesvelo

解决方案


解决方案 !

---此代码可防止在 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;
  });
}

推荐阅读