当前位置: 首页 > 知识库问答 >
问题:

如何使用knex和potsgres插入数组数据类型

魏康安
2023-03-14

我正在讨论这个问题,我的时间不多了,所以请大家帮忙:我想插入以下数据:

const data= {
id:user.id,
choice:'SWOT',
label:['Strengths','Weaknesses','Opportunities','Threats'],
results:[45,5,20,30],
description:'My first Strategic Analysis'}

放入此表:

analyses (
id serial primary key,
userID integer not null,
choice varchar(25) not null,
Label text ARRAY,
Results integer ARRAY,  
description varchar(200),
FOREIGN KEY (userID) REFERENCES users (id)

);

使用knex,这应该类似于smth:

db('analyses').insert({
        userid: data.id,
        choice: data.choice,
        Label:  data.labelG,
        Results: data.resultG,
        description: data.description
    }) 

由于这种语法对数组类型不起作用,我想知道如何做到这一点?有些人建议使用knex.raw(),但是我没有得到正确的语法,有什么帮助吗?

共有1个答案

洪黎昕
2023-03-14

您可以直接将javascript数组传递给array类型的列。像这样:

await knex.schema.createTable('foo', t => {
  t.increments('id');
  t.specificType('intarray', 'integer ARRAY');
  t.specificType('stringarray', 'text ARRAY');
});

await knex('foo').insert({ intarray: [4,3,2,1], stringarray: ['foo','bar'] });

const rows = await knex('foo');
console.log(rows);

// should output: 
// [ anonymous { id: 1, intarray: [ 4,3,2,1 ], stringarray: [ 'foo', 'bar' ] } ]
 类似资料:
  • 我正在使用并尝试插入具有以下函数的mysql数据库: 最后一个带有的控制台输出显示正确,但即使在等待之后也没有发生任何事情 我猜这是函数的异步部分,但同时还能做什么呢? 使用Knex时,是否有标准的方法创建条目? 感谢您的回复!

  • 问题内容: 当前,当通过print_r()输出时,我有一个类似于以下内容的数组; 我想将此数据插入到一个表中,每个元素值都属于其各自的字段。 目前,我的php代码如下所示 注意:R_ID不是此表中的主键。 有人可以帮助我了解如何应对这种情况吗?感谢您的阅读和帮助! 问候。 问题答案: 我会避免对每个条目进行查询。

  • 我有一个Pandas dataframe,其中包含几个列,这些列是列表。我希望将它们作为数据类型插入到雪花表中。

  • 当前,我有一个数组,当通过print_r()输出时,该数组如下所示; 我想将此数据插入到一个表中,每个元素值都属于其各自的字段。 问候。

  • 我想在mongodb中插入数据,其中一个字段是对象类型的数组。我无法了解如何将数据与mongoose模式中定义的其他字段一起添加到数组字段中。当我试图使用POSTMAN发布数据时,请使用以下配置,如屏幕截图所示: 它的显示游戏数组为空,显示以下错误 下面是我的代码: db。js 出版商js 可以按照下面的代码插入两个字段,但如何将数组字段与这两个字段一起添加。 服务器js 有人让我知道如何执行这项

  • 我试图插入数组数据到数据库使用codeignter.当我打印的值使用乐趣。 它显示正确的结果,但当我单击“保存”按钮时,它会在表中插入空白值。 我只想在处方表中为特定的处方id存储多个药物名称。我试图使用insert_batch函数插入数据,但它会保存空白记录 这是我的型号代码: 控制器代码