【发布时间】:2019-02-21 14:09:29
【问题描述】:
我在使用 knex 将许多行插入 postgres db 时遇到问题。 我有需要插入的动态行数。我期望的结果是:
插入行四次(例如四次。我不知道确切的插入次数,因为它是动态来自前端的):
- field_id 在每一行都会不同:(1,2,3,4) - 我有这些 ID 的数组
- id_of_product 将始终保持不变
- value 总是不同的:(来自 Frontend 的 req.body[id])- 括号中的 ID 与 field_id 的值相同 数组
我怎样才能做到这一点?我尝试用 forEach 循环它,但它是异步操作,所以我不能使用 .then(),因为它会被调用四次
这是我尝试过的。我不知道如何设置 field_id 和 req.body 来动态获取它。
字段 = [1,2,3,4]
预期结果:
knex 创建 4 个插入,如下所示: field_id: 1, product_id:一些静态ID 值: frontValue[1] 等
knex('metadata').insert(
[{ field_id: fields,
product_id: product_id,
value: req.body[fields]
}]
)
【问题讨论】:
-
insert()可以接受要插入的行数组。 -
试过了,但这似乎对我不起作用,或者我做错了
knex('metadata').insert([{ field_id: fields, product_id: product_id, value: req.body[fields] }])这是我试过的。我不知道如何设置 field_id 和 req.body 以动态获取它,因为字段是 ID 的数组 -
您能否用您尝试调用插入的方式更新您的问题?
-
我已经更新了我的问题
-
你必须对你正在做的事情更具声明性,当你将一个包含单个元素的数组传递给 knex 时,它只会尝试插入 一个 项。我会在下面贴出正确的用法
标签: sql postgresql knex.js