【问题标题】:Null value in bulk insert Hasura GraphQL批量插入 Hasura GraphQL 中的空值
【发布时间】:2022-03-22 03:07:09
【问题描述】:

我正在尝试使用 Hasura 公开的 REST API(用 GraphQL 编写)进行多次插入。 这是我的突变:

mutation insertMultipleMeasurements2($payload: [measurements_insert_input!]!) {
  insert_measurements(objects: $payload) {
    returning {
      time
    } 
  }
}

这是“操作”选项卡中 measurements_insert_input 的定义:

input measurements_insert_input {
  device: String!
  value: numeric!
  variable: String!
}

(顺便说一句,这是我发现在批量插入中插入数字类型对象的唯一方法)。

当我尝试插入类似:

[
    {
        "device": "TEST",
        "value": 5630,
        "variable": "Length"
    },
        {
        "device": "TEST",
        "value": 5631,
        "variable": "Length"
    }
]

我明白了:

{
    "path": "$",
    "error": "expecting a value for non-nullable variable: \"payload\"",
    "code": "validation-failed"
}

我尝试了许多不同的方法来重写我的突变,但似乎都没有奏效。 提前致谢

【问题讨论】:

    标签: javascript graphql apollo-client hasura


    【解决方案1】:

    您很可能忘记用variables 包裹您的objects,如下所示:

    yourMutation({
          variables: { objects, on_conflict }
    })
    

    如果您依赖 TS IntelliSense,这并不简单,最好查看文档 :)

    【讨论】:

      【解决方案2】:

      根据错误信息

      "期待一个不可为空的变量的值:"payload""

      你应该通过一个对象传递数组

      {
        payload: [
          {
          "device": "TEST",
          "value": 5630,
          "variable": "Length"
          },
          {
          "device": "TEST",
          "value": 5631,
          "variable": "Length"
          }
        ]
      }
      

      【讨论】:

        猜你喜欢
        • 2020-10-08
        • 1970-01-01
        • 2012-09-11
        • 1970-01-01
        • 2023-04-09
        • 2023-03-19
        • 1970-01-01
        • 2019-04-23
        • 2018-01-31
        相关资源
        最近更新 更多