首页 > 解决方案 > 如何使用 Wix 代码插入参考?

问题描述

首先让我说我完全糊涂了。所以我有 2 个集合 - CCDB 和 IDB CCDB 的主键是 Champion ID(field key:champId, type:text) IDB 有一个主键 DeviceName(field:title, type:text) 和一个参考字段 Champion ID(字段键:champId,类型:参考)。因此,IDB 集合中的 n 个项目属于 CCDB 集合中的 1 个项目。

现在,当我使用下面的代码将数据插入 IDB 集合时,数据库会显示一条红色下划线:“单元格值类型是数字。更改为引用。”

**下面是wix代码

getitems("pc").then(res => {
let toInsert = {
 "title":  res[i].champion_id, //reference to CCDB
 "description": res[i].Description, 
 "deviceName": res[i].DeviceName,
 "itemId": res[i].ItemId 
} 
wixData.insert("IDB", toInsert)
  .then(results => {
    let item = results;
    console.log(item);
 })
.catch(err => {
 let errorMsg = err;
 console.log(errorMsg);
  });
})

在插入操作后的 IDB 集合中

CCDB 持有正确的 champId

"title":  (res[i].champion_id).toString(),

我也尝试在这里使用 toString,但集合随后显示错误:“引用已损坏”。

我搜索了文档并找到了 wixData.insertReference().. 但我不确定如何在这种情况下使用该方法,或者即使可以使用。而且由于 IDB 中的项目数将超过 100,因此我无法手动插入引用。我怎样才能用代码解决这个问题?谢谢。

标签: javascriptjqueryvelo

解决方案


您的描述、代码和屏幕截图之间似乎没有什么区别。

您的想法是正确的,因为您应该在 IDB 集合的引用字段中使用 CCBD 集合中的 ID,但您似乎没有正确完成它。

根据您的描述,您似乎需要这样的东西:

let toInsert = {
 "title":  res[i].DeviceName,
 "description": res[i].Description, 
 "champId": res[i].champId, // this is the reference field, not title
 "itemId": res[i].ItemId 
} 

但是就像我说的那样,您的描述与您的代码和屏幕截图似乎显示的内容不符,因此很难准确判断发生了什么。


推荐阅读