Javascript 如何使wix数据库项唯一
在我的Wix网站中,我创建了一个数据库,名为“Javascript 如何使wix数据库项唯一,javascript,database,velo,Javascript,Database,Velo,在我的Wix网站中,我创建了一个数据库,名为“giaCode”的字段应该是唯一的 问题在于Wix数据库没有任何功能来保存唯一的项,比如外键 所以我决定创建一个函数来搜索和删除数据库中的任何重复项。但它不起作用 流程应为: 将CSV文件导入数据库 检查所有行并将其“\u id”记录到数组中 调用数组以删除行 Wix代码(data.js)如下所示: import wixData from 'wix-data'; let n,i,j,duplicateData,items; let k = 0;
giaCode
”的字段应该是唯一的
问题在于Wix数据库没有任何功能来保存唯一的项,比如外键
所以我决定创建一个函数来搜索和删除数据库中的任何重复项。但它不起作用
流程应为:
Wix代码(
data.js
)如下所示:
import wixData from 'wix-data';
let n,i,j,duplicateData,items;
let k = 0;
wixData.query("Diamond")
.count()
.then( (num) => {
n = num;
});
wixData.query("Customer")
.find()
.then( (data) => {
items = data.items;
});
export function checkDuplicates(value, info) {
for (i = 0; i < n; i++) {
for (j = 0; i < n; j++) {
wixData.query("myCollection")
.eq("giaCode", items[i].giaCode)
.find()
.then ((DupResults) => {
duplicateData[k][j] = DupResults.items;
k++;
});
}
}
for (i = 0; i < k; i++) {
for (j = 1; j < duplicateData[k][j].giaCode.length; j++) {
wixData.remove("Diamond", duplicateData[i][j].giaCode)
}
}
}
export function Diamond_afterInsert(item, context) {
checkDuplicates()
}
从“wix数据”导入wixData;
设n,i,j,重复数据,项;
设k=0;
wixData.query(“菱形”)
.count()
。然后((num)=>{
n=num;
});
wixData.query(“客户”)
.find()
。然后((数据)=>{
项目=数据。项目;
});
导出函数检查重复项(值、信息){
对于(i=0;i{
duplicateData[k][j]=DuplicateResults.items;
k++;
});
}
}
对于(i=0;i
它应该可以工作,但我收到错误消息:
如果我理解正确,你有几件事做错了。也就是说,如果您试图阻止将重复项添加到集合中
钩子,这样项目就永远不会进入集合,而不是在已经进入集合后将其删除
giaCode
的现有项目以及副本。我不认为那是你想要的.eq()
。你没有说它应该等于什么值import wixData from 'wix-data';
export function searchForDuplicates(value) {
return wixData.query("Diamond")
.eq("giaCode", value)
.find()
.then((results) => {
return results.items.length;
})
.catch((err) => {
let errorMsg = err;
});
}
export function Diamond_beforeInsert(item) {
return searchForDuplicates(item.giaCode).then((res) => {
if(res > 0) {
return Promise.reject("Duplicate");
}
return item;
});
}
在插入之前,我将其切换为
,修复了.eq()
,并删除了所有不必要的代码。Hello@TerryLau!有一条规则可以遵循>寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。一旦你这样做,请相应。谢谢!:)更具体地说,最大的抱怨是“可验证”部分。我尝试了代码,但它会收到一些错误消息。和照片一样。