How to make pg-promise return rows as arrays?

前端 未结 1 770
眼角桃花
眼角桃花 2020-12-18 09:27

How can we make pg-promise return an array of rows from a query, as opposed to array of row objects?

相关标签:
1条回答
  • 2020-12-18 09:45

    pg-promise supports advanced parameters for Prepared Statements and Parameterized Queries, exactly as they are in node-postgres. One such parameter - rowMode, can be set to array to make the driver return rows as arrays.

    // 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'
    });
    

    See also types that wrap them: PreparedStatement and ParameterizedQuery.

    The code below is equivalent to the one above, but offers better performance + re-usability + flexibility of setting values separately.

    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);
    
    0 讨论(0)
提交回复
热议问题