Strapi使用书架(或猫鼬)来管理其管理的实体的模型。这相当方便,并且在查询这些模型中的数据时很有用。
当我尝试执行聚合查询时,出现了我的问题。想象一下,如果您有一个具有两个字段的Todo
模型:name
和done
,则可以通过执行以下操作轻松获得Todo
的列表(在{{1} }):
services/Todo.js
但是我要计算的是完成和未完成的待办事项数量。本质上,我要执行:
Todo.query().fetchAll()
我可以创建查询,然后执行它...但是失败了,因为它试图使用查询结果来合并Todo对象,并且抱怨没有SELECT done, count(*) as howMany FROM todo GROUP BY done
。
所以,这就是问题:stradi是否提供我可以用来运行模型分离查询的“通用”查询功能?
我希望能够使用trapi正在使用的相同数据库连接。
答案 0 :(得分:1)
这不直观,文档也不清楚。
但是您可以在strapi.connections.default
中访问猫鼬和knex实例。
希望有帮助。
使用示例为:
const knexQueryBuilder = strapi.connections.default('mytable');
knexQueryBuilder.where('myfield','=','myvalue');
const resp = await knexQueryBuilder.then();
console.log('Results: ', resp);