Node.js 与Sequelize查询匹配的GraphQL查询字段
我这里有一个简单的场景 我有一个人物续集模型,它有5个字段:firstName、lastName、id、city和zipCode。我还有一个具有相同字段的GraphQL对象 每次执行GraphQL查询时,例如:Node.js 与Sequelize查询匹配的GraphQL查询字段,node.js,sequelize.js,graphql,graphql-js,Node.js,Sequelize.js,Graphql,Graphql Js,我这里有一个简单的场景 我有一个人物续集模型,它有5个字段:firstName、lastName、id、city和zipCode。我还有一个具有相同字段的GraphQL对象 每次执行GraphQL查询时,例如: { people(id:123){ firstName lastName } Sequelize发送如下SQL语句: SELECT `firstName`, `lastName`, `id`, `city`, `zipCode` FROM `People` WHE
{
people(id:123){
firstName
lastName
}
Sequelize发送如下SQL语句:
SELECT `firstName`, `lastName`, `id`, `city`, `zipCode` FROM `People` WHERE `People`.`id` = 123;
SELECT `firstName`, `lastName` FROM `People` WHERE `People`.`id` = 123;
我是否可以让Sequelize发送如下SQL语句:
SELECT `firstName`, `lastName`, `id`, `city`, `zipCode` FROM `People` WHERE `People`.`id` = 123;
SELECT `firstName`, `lastName` FROM `People` WHERE `People`.`id` = 123;
基本上,我想要的是SQL语句不会选择我不想要的任何额外列
这是我在GraphQL查询对象中的解析函数:
resolve: function (root, args) {
return Db.models.People.findAll({ where: args });
}
您需要在sequelize查询中使用
属性
,这是一个文档性很好的问题,我也在这里寻找答案@Ellebkey不可能在查询中获取字段。我应该说得更具体一些,如果您想将获取的字段作为响应使用参数,则必须像这样应用于attributes
属性Db.models.People.findAll({where:{},attributes:args})
whereargs
是包含字段的字符串数组。where
语句与用于筛选查询的SQL语句相同。@YiYaoNg您找到解决方案了吗?