stripi + knex 来执行复杂的查询

JMC*_*HZA 5 strapi

如何让 knex 对象在我的 Strapi 服务中执行自定义或复杂查询?

我的 Strapi 版本安装了 Strapi-hook-knex 和 Strapi-hook-bookshelf,但是当我运行 qb.raw 时,它是一个未定义的对象。

这是运行这样的查询:

qb.select(knex.raw('.... ?? )', '...'))
Run Code Online (Sandbox Code Playgroud)

提前致谢。

Jim*_*RIE 7

你会在 strapi.connections.default

default如果您不更改连接名称。如果你这样做了,你将不得不default用你的连接名称替换。


小智 7

在 Strapi V4 中使用这个:

await strapi.db.connection.select("*").from("demos")
Run Code Online (Sandbox Code Playgroud)


Dyl*_*lan 5

我花了一段时间来确定确切的语法。在这里,以防对其他人有帮助。如果没有 Jim LAURIE 的回答,就不可能到达那里。

module.exports = {
  async findCustom(ctx) {
    const rawBuilder = strapi.connections.default.raw(
      "select field1 from mytable where field1 = 'x'"
    );
    const resp = await rawBuilder.then();
    return resp.rows;
  }
}
Run Code Online (Sandbox Code Playgroud)