我有一个待办事项清单,在此清单中,我已成功设法添加新项目和更新缓存,现在致力于添加删除突变。我的最终目标是从delete突变中返回一个ID,该ID可用于更新客户端的待办事项的整个列表。我尝试将项目的ID传递给突变,但它返回null。图式type Todo { _id: ID! todo: String!}type RootMutation { deleteTodo(_id: ID!): Todo}解析器 deleteTodo: async function({ _id }, req) { return await Todo.deleteOne({ _id }); }使用以下代码在http:// localhost:3000 / graphql的graphql界面中测试了此突变:mutation { deleteTodo (_id: "example0101010101001010101aasdsadasd"){ _id }}得到这个错误{ "errors": [ { "message": "Cannot return null for non-nullable field Todo._id.", "locations": [ { "line": 3, "column": 3 } ], "path": [ "deleteTodo", "_id" ] } ], "data": { "deleteTodo": null }}当我将一个项目的ID传递给该突变时,预期会返回此已删除项目的ID,但我一直为空。我怀疑我的解析器功能可能有问题。
1 回答

慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
您可能不想在deleteOne
这里使用该方法。纵观类型定义为mongoose
,remove
,deleteOne
并deleteMany
不会返回删除的文档。使用findByIdAndRemove
代替,它将返回已删除的文档;如果找不到,则返回null。
添加回答
举报
0/150
提交
取消