我试图用upsert
数据库表进行环回。原始查询是
insert into all_inventory (sku, qty, regal, fach, skuRegalFach)
values (?, 1, ?, ?, ?)
on duplicate key update
qty = qty + 1,
regal = values(regal),
fach = values(fach)
有没有办法用loopback做到这一点?
目前我遇到两个问题。
我明白了:
ER_DUP_ENTRY:重复输入' 22323'为了钥匙 ' all_inventory_SkuRegalFach_uindex'
因为环回似乎无法正确处理密钥。
而且我不知道如何告诉loopback将1添加到qty字段而不是仅用新值覆盖它。
我现在正在使用原始查询,
let ds = Inventory.dataSource,
values = [sku, regal, fach, sku + regal + fach],
sql = `insert into all_inventory (sku, qty, regal, fach, skuRegalFach) values (?, 1, ?, ?, ?) on duplicate key update qty = qty + 1, regal = values(regal), fach = values(fach)`
ds.connector.query(sql, values, (err, products) => {
if (err) return console.error(err);
cb(null, products);
});
有没有办法用loopback的ORM做到这一点?
答案 0 :(得分:1)
我会使用查找过滤器。 findById或使用适当的过滤器查找。
如果您得到结果,那么它就存在。您可以修改数量然后存储它。如果它不存在,那么你只需创建它。