2017-09-01 48 views
0
{ 
    members { 
    id 
    lastName 
    } 
} 

當我試圖從成員表中獲取數據時,我可以得到以下響應。id不能用在graphQL where子句中嗎?

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

但是,當我試圖用'id'where子句更新行時,控制檯顯示錯誤。 「在 'where子句' 未知列 '男'」,

從上面的一些結果弄得我:

mutation { 
    updateMembers(
     input: { 
     values: { 
      email: "[email protected]" 
     }, 
     where: { 
      id: 3 
     } 
     } 
    ) { 
     affectedCount 
     clientMutationId 
    } 
} 

「消息」。

  1. 爲什麼返回的ID不是數值?從數據庫中,它是一個數字。
  2. 當我更新記錄時,我可以在where子句中使用數字id值嗎?

我使用的NodeJS,apollo-clientgraphql-sequelize-crud

回答

1

TL; DR:看看我可能不會relay兼容這裏PR https://github.com/Glavin001/graphql-sequelize-crud/pull/30

基本上,內部源代碼從relay-graphql調用fromGlobalId API,但傳遞了原始值(例如,您的3),導致它返回undefined。因此,我只是從源代碼中刪除了調用,並提出了請求。

P.S.這個使用我的2小時解決問題的錯誤的東西在構建失敗,我認爲這個解決方案可能不夠一致。

0

請試試這個

mutation { 
    updateMembers(
     input: { 
     values: { 
      email: "[email protected]" 
     }, 
     where: { 
      id: "3" 
     } 
     } 
    ) { 
     affectedCount 
     clientMutationId 
    } 
}