如何在 graphql 和 mongodb 的一个突变中保存多行?

Posted

技术标签:

【中文标题】如何在 graphql 和 mongodb 的一个突变中保存多行?【英文标题】:How can I save multiple rows in one mutation in graphql and 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 【参考方案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 这是我需要的。但是我没有得到嵌套的突变语法,你能解释一下吗? 啊,我明白了。 '\' 只是你说使用类型突变或根突变;)

以上是关于如何在 graphql 和 mongodb 的一个突变中保存多行?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 GraphQL 在 MERN 应用程序的 MongoDB 模式中插入数组字段?

如何在不创建 Mongoose 模型的情况下将 GraphQL 与 Mongoose 和 MongoDB 一起使用

如何使用GraphQL在MERN应用程序的MongoDB模式中插入数组字段?

如何在本地使用带有 express 的 graphql 和带有 mongoose 的 mongodb 来检索文档?

如何使用 GraphQL 和 Mongodb 编写 lambda 函数?

GraphQL 如何使用 Nestjs 或 type-graphql 设置查询 MongoDB ref 集合