id不能在graphQL where子句中使用?

时间:2017-09-01 09:04:43

标签: node.js sequelize.js graphql apollo

{   "data": {
    "members": [
      {
        "id": "TWVtYmVyOjE=",
        "lastName": "temp"
      },
      {
        "id": "TWVtYmVyOjI=",
        "lastName": "temp2"
      }
    ]   } }

当我尝试从成员表中获取数据时,我可以得到以下响应。

mutation {
    updateMembers(
      input: {
        values: {
          email: "testing@test.com"
        },
        where: {
          id: 3
        }
      }
    ) {
      affectedCount
      clientMutationId
    } 
}

但是,当我尝试使用' id'更新行时where子句,控制台显示错误。

WAV
  

" message":"未知栏' NaN'在' where子句'",

上面的一些结果使我感到困惑。

  1. 为什么返回的id不是数值?从数据库中,它是一个数字。
  2. 当我更新记录时,我可以在where子句中使用数字id值吗?
  3. 我正在使用nodejs,apollo-clientgraphql-sequelize-crud

2 个答案:

答案 0 :(得分:1)

TL; DR:在https://github.com/Glavin001/graphql-sequelize-crud/pull/30

查看我可能不会relay兼容的PR

基本上,内部源代码从fromGlobalId调用relay-graphql API,但在其中传递了原始值(例如您的3),导致它返回undefined }。因此,我刚从源代码中删除了调用并发出了拉取请求。

P.S。这个有问题的东西使用我的2小时来解决构建失败,我认为这个解决方案可能不够一致。

答案 1 :(得分:0)

请试试这个

mutation {
    updateMembers(
      input: {
        values: {
          email: "testing@test.com"
        },
        where: {
          id: "3"
        }
      }
    ) {
      affectedCount
      clientMutationId
    } 
}