如何让pg-promise返回行为数组?

4
我们如何使得 pg-promise 返回一个由查询结果行数组组成的数组,而不是由行对象组成的数组呢?

你有任何想要的示例吗? - I'm_ADR
@hud 如果我的回答符合您的需求,请确认一下。 - vitaly-t
1个回答

7

pg-promise 支持高级参数的 Prepared StatementsParameterized Queries,就像在 node-postgres 中一样。其中一个参数 - rowMode,可以设置为 array,使驱动程序将行作为数组返回。

// Prepared Statement:
await db.any({
    name: 'my-prep-statement',
    text: 'select ...', // a query or a QueryFile object (see PreparedStatement)
    values: [],
    rowMode: 'array'
});

// Parameterized Query:
await db.any({
    text: 'select ...', // a query or a QueryFile object (see ParameterizedQuery)
    values: [],
    rowMode: 'array'
});

请参阅包含它们的类型:PreparedStatementParameterizedQuery

下面的代码与上面的代码等效,但提供更好的性能、可重复使用性和分别设置值的灵活性。

const ps = new pgp.PreparedStatement({
    name: 'my-prep-statement',
    text: 'select ...', // a query or a QueryFile object (see PreparedStatement)
    values: [], // alternatively, can be set when calling a query method
    rowMode: 'array'
});

await db.any(ps);

const pq = new pgp.ParameterizedQuery({
    text: 'select ...', // a query or a QueryFile object (see ParameterizedQuery)
    values: [], // alternatively, can be set when calling a query method
    rowMode: 'array'
});

await db.any(pq);

上面的代码只有一个小问题。 你忘记在加载方法之前调用pgp。 var pq = new pgp.ParameterizedQuery - Alisson Oliveira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接