首页 > 解决方案 > 如何使用 graphql 对 mongoose 查询进行验证

问题描述

我需要检查数据库中是否存在/已经存在数据。我正在使用 graphql 和猫鼬。

这是我的 graphql 突变对象:

addBook: {
        type: BookType,
        args: {
            name: { type: new GraphQLNonNull(GraphQLString) },
            genre: { type: new GraphQLNonNull(GraphQLString) },
            authorid: { type: new GraphQLNonNull(GraphQLString) }
        },
        resolve(parent, args){
            let book = new Book({
                name: args.name,
                genre: args.genre,
                authorid: args.authorid
            });
            return book.save();
        }
    },
updateBook: {
        type: BookType,
        args: {
            name: { type: new GraphQLNonNull(GraphQLString) },
            updateName: { type: new GraphQLNonNull(GraphQLString) }
        },
        resolve(parent, args){
            let book = Book.findOneAndUpdate({name: args.name}, {name: args.updateName}, {new: true});
            return book.exec();
        }
    },
deleteBook: {
        type: BookType,
        args: {
            name: { type: new GraphQLNonNull(GraphQLString) }
        },
        resolve(parent, args){
            let book = Book.findOneAndDelete({name: args.name});
            return book.exec();
        }
    }

所有这些都在 MongoDB 数据库中成功添加、更新和删除。但我不知道如何首先验证数据是否存在。当我尝试在不存在的书籍上运行更新时,GraphiQL UI 抛出 null

{
  "data": {
    "updateBook": null
  }
}

我该如何检查这个?谢谢!

标签: mongoosegraphql

解决方案


推荐阅读