【问题标题】:How can I save multiple rows in one mutation in graphql and mongodb?如何在 graphql 和 mongodb 的一个突变中保存多行?
【发布时间】:2019-05-24 06:20:38
【问题描述】:

在这里,我想在一个突变查询中添加多个想法。 我怎样才能做到这一点:

mutation{
  savethoughts(data: [{id:1,name:"a"},data: {id:2,name:"b"}]){
    id
  }
}

【问题讨论】:

  • mutation { savethoughts(data: [{ id: 1, name: "a" }, { id: 2, name: "b" }]) { id } }

标签: mongodb express-graphql


【解决方案1】:

要在数据库中保存多条记录,您需要仔细执行每个步骤

例如

mutation{
  setMultipleRecord(data: [{title: "first Title", name: "First"},
                           {title: "Second Title", name: "Second"}])
}

你必须有模式类型

  `
  .......
  input Record {
    title: String!
    name: String!
  }
  .....
  ` 

并根据给定添加 Mutation

  type Mutation/type RootMutation { {
    ......
    setMultipleRecord(data: [Record]): String!
  }

这里你可以看到 Record 是输入类型的模式对象,其中 data 是我们用来获取数据对象的参数保存变量。

你可以给出任何名称而不是数据,也可以在突变中的参数中更改

现在在解析器函数a中

  Mutation: {
    setMultipleRecord: async(args, { data }) => {
      console.log(data)
      //Here data contain data which you passed which is
      // [{title: "first Title", name: "First"},
      //  {title: "Second Title", name: "Second"}]
      // Perform operation as your requirement
      // Please return String 
    }
  }

现在您可以根据您对对象的要求更改名称。

你成功了……

【讨论】:

  • 这看起来很棒,谢谢@Ashok 这是我需要的。但是我没有得到嵌套的突变语法,你能解释一下吗?
  • 啊,我明白了。 '\' 只是你说使用类型突变或根突变;)
猜你喜欢
  • 2021-09-09
  • 2018-07-04
  • 2019-02-21
  • 2017-10-28
  • 2017-06-07
  • 2019-11-27
  • 2021-02-20
  • 2017-01-21
  • 2020-12-16
相关资源
最近更新 更多