mongoose - 如何使用 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
}
}
我该如何检查这个?谢谢!
解决方案
推荐阅读
- asp.net - 到多个数据库的 Web API 连接字符串
- node.js - 为什么 PM2 没有启动我的 Node 进程?
- scheme - 平衡三进制字符串的总和
- sql - 需要为表和表的 varchar 列分配一个自动增量值,而不使用 Id 列作为自动增量
- laravel - 基于已翻译资源的 Laravel Nova Override BelongsTo Language 字段
- html - CSS 阴影属性未显示在多边形对象上
- android - FirebaseAuth 不返回当前用户
- ios - 在 Swift iOS 中将文本字段设置为应用程序启动时的第一响应者
- kendo-ui - 使用 memoryCache .Net Core 具有相同数据源的多个 Kendo DropDownList 控件
- maven - Maven Enforcer 插件识别 Camel-CXF 中的依赖收敛问题