使用 GraphQL 更新数据失败

Posted

技术标签:

【中文标题】使用 GraphQL 更新数据失败【英文标题】:Failed Update data with GraphQL 【发布时间】:2019-04-17 07:40:14 【问题描述】:

现在我正在尝试更新现有数据宽度

const Mutation = new GraphQLObjectType(
    name: 'Mutation',
    fields: 
        updateUser: 
            type: UserType,
            args: 
                id:  type: GraphQLID ,
                email:  type: GraphQLString ,
            ,
            resolve(parent,  id, email ) 
                console.log('email',email)
                const user = User.findById(id)
                user.email = email
                return user
            
        ,
    
)

我的突变是这样的

 mutation
   updateUser(id:"5beac69c421c6e2820a0e809", email:"8")
       id       
        email
   

 

我得到的是用户数据, 但是数据库没有变化,请帮忙

【问题讨论】:

你忘记在某处调用 use.save() 了吗? 【参考方案1】:

@Matan,你在用Mongoose吗?如果是,则必须实际更新此数据,您所做的只是改变对象并返回它。

使用MongoDB(如果您正在使用它),您可以做到:User.findOneAndUpdate( id , email ) 或接近。

如果它是另一个数据库,您必须在某个时候调用.save().update(),否则,您不会更改任何数据。

【讨论】:

以上是关于使用 GraphQL 更新数据失败的主要内容,如果未能解决你的问题,请参考以下文章

Apollo / GraphQl - 单实体突变不更新缓存(数据库更新)

如何在连接到 mLab 的 GraphQL 中为“更新”数据编写 Mutation

通过 AWS AppSync 中的突变更新 GraphQL 数据时出错

MongoDB、Express + GraphQL 服务器:使用新字段更新数据模型,但查询不会获取新字段

在使用 graphql 的 useQuery 获取的数据更新 useEffect 钩子内的状态变量时防止无限渲染

GraphQL Mutation 更新数据库中的字段数组