如何在解析函数 GraphQL 中传递两个查询?

Posted

技术标签:

【中文标题】如何在解析函数 GraphQL 中传递两个查询?【英文标题】:how to pass two queries in resolve function GraphQL? 【发布时间】:2019-04-18 16:57:24 【问题描述】:

今天我在解析函数 (GraphQL) 中的 db(drop) 操作中遇到问题。代码如下。

dropAuthor: 
type: authorType,
            args: id: idType,
            async resolve(parent, args)
                Book.deleteMany(authorId: args.id).find();
                return Author.deleteOne(_id: args.id);
            

GraphiQL 查询如下

mutation  
  dropAuthor(id:"5bed7c23bff55c1086a7b4d4")
    id
  

每当我尝试删除作者表单集合时,它只删除作者,并且记录的书籍保持不变。这段代码有什么问题?

【问题讨论】:

【参考方案1】:
dropAuthor: 
  type: authorType,
  args:  id: idType ,
  async resolve(parent, args)
    let deleteBooks = Book.deleteMany( authorId: args.id ).find();
    let deleteAuthor = Author.deleteOne( _id: args.id );
    return Promise.all([deleteBooks, deleteAuthor]);
  

试试这个代码。

【讨论】:

以上是关于如何在解析函数 GraphQL 中传递两个查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Graphql 解析函数中的回调返回值?

ReactJS/Javascript/Graphql/React-apollo:传递查询变量

将变量传递给外部解析引用

Relay 和 GraphQL 中的身份验证

在 GraphQL 中将参数从根传递到子查询

graphql.GraphQLSchema:使用啥类型的参数来获取查询以传递给 mongo db.collection.find 来解析查询