首页 > 解决方案 > Fauna DB GraphQL 突变通过其 ID 更新表单的许多表单输入

问题描述

我有以下 graphQL 模式,在动物区数据库上运行

type Form {
  name: String!
  index: Int!
  user: User
  formInputVals: [FormInputVal!] @relation
}

type FormInputVal {
  name: String!
  index: Int!
  type: String!
  formRoot: Form!
}

type User {
  name: String!
  email: String!
  password: String!
  forms: [Form] @relation
}

type Query {
  allForms: [Form!]
  allUsers: [User!]
  allFormInputVals: [FormInputVal!]
}

我试图弄清楚我将如何查询和编写一个突变,我将在其中更新特定的表单 id,并通过那里的 id 或动物区数据库中所谓的引用更新与该表单相关的所有特定文档。

我可以用这个突变更新表单名称

mutation{
  updateForm(id:"291541554941657608",data:{name:"test"}){
    name
  }
}

但除此之外,我似乎无法弄清楚如何更新 Form 类型的多个 FormInputVals。我和动物数据库谈过,他们说我可能需要一个通过 lambda 函数的解析器,让我这样做,任何熟悉这个的人。我已经发布了另一个问题,但是我在这个问题中改变了我的最终目标,但是这个问题是类似

请参阅我的表单中有一个对象映射到动物 DB 集合中的文档 ID。看起来是这样。

[{"291705061039407629":{"name":"test","type":"text"}},{"291705951034016264":{"name":"test","type":"text"}}]

我如何更新动物数据库中 FormInputVal 类型的两个匹配记录。数字代表集合中文档的 ID。

这是用于更新 formInputVal 的 GraphQL 文档的屏幕截图,我的问题是我想一次更新多个文档。

在此处输入图像描述

这是 updateForm 文档

在此处输入图像描述

更新:我发现创建选项可以一次添加多个文档,只需要弄清楚我是否可以更新或替换所有文档。这适用于一次添加多个文档。

 mutation{
  updateForm(id:"291541554941657608",data:{
    name:"hello",
    index:0,
    formInputVals:{
      create:[
        {name:"test", index:0, type:"text"},
        {name:"test", index:0, type:"text"},
        {name:"test", index:0, type:"text"},
      ]
    }
  }){
    name
    formInputVals{
      data{
        name
        type
        index
      }
    }
  }
}

标签: javascriptgraphqlfaunadb

解决方案


推荐阅读