Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 与Sequelize查询匹配的GraphQL查询字段_Node.js_Sequelize.js_Graphql_Graphql Js - Fatal编程技术网

Node.js 与Sequelize查询匹配的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

我这里有一个简单的场景

我有一个人物续集模型,它有5个字段:firstName、lastName、id、city和zipCode。我还有一个具有相同字段的GraphQL对象

每次执行GraphQL查询时,例如:

{
   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})
where
args
是包含字段的字符串数组。
where
语句与用于筛选查询的SQL语句相同。@YiYaoNg您找到解决方案了吗?