4

我们如何让pg-promise从查询中返回一个行数组,而不是行对象数组?

4

1 回答 1

6

pg-promise支持 and 的高级参数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);
于 2016-03-15T23:07:26.033 回答