有没有办法向 knex 返回或 select 方法添加函数调用?

Is there a way to add function calls to knex returning or select methods?

我正在尝试将方法调用 ST_ASText 添加到地理列以将其转换回 wkt。所以我尝试做这样的事情。

activeTrx(TABLE_NAME)
            .returning(['id', 'ST_AsText(polygon_wkt)')
            .insert(values);

Afaik 应该可以,但您需要使用 knex.raw

activeTrx(TABLE_NAME)
    .returning([
      'id', 
      knex.raw('ST_AsText(??)', ['polygon_wkt'])
    ])
    .insert(values);

我最终做了这样的事情。这有效。

activeTrx
        .raw(
            `?
            RETURNING id, ST_AsText(polygon_wkt) as polygon_wkt;`,
            [activeTrx.table(TABLE_NAME).insert(values)],
            )
        .then((result) => {
            return result.rows;
        });