我正在使用Graphql,然后我遇到了需要填充的情况,但我不知道如何执行它。这是我的预订模式constmongoose=require('mongoose')constSchema=mongoose.Schemaconstbookingschema=newSchema({event:{type:Schema.Types.ObjectId,ref:'Event'},user:{type:Schema.Types.ObjectId,ref:'User'}},{timestamps:true})module.exports=mongoose.model('Booking',bookingsc
我正在使用graphql和mongodb(mongoose)构建一个快速JS应用程序。我正在使用facebooksDataloader来批处理和缓存请求。除了这个用例,它工作得很好。我有一个充满用户帖子的数据库。每个帖子都包含用户ID以供引用。当我打电话返回数据库中的所有帖子时。帖子返回正常,但如果我尝试在每个帖子中吸引用户。有多个帖子的用户将只返回一个用户,因为第二个用户的key已缓存。所以来自用户“x”的2个帖子(键)将只返回1个用户对象“x”。然而,Dataloader必须返回与其收到的key相同数量的promise。它有一个选项可以将缓存指定为false,这样每个键都会发出请求
我正在编写用于在NodeJS中登录用户的突变。它给出错误“必须提供名称”。这是浏览器GraphQL查询:mutation{login(username:"dfgdfg",password:"test1234"){_id,name{fname,lname,mname}}}这是我的代码constlogin={type:UserType,args:{input:{name:'Input',type:newGraphQLNonNull(newGraphQLObjectType({username:{name:'Username',type:newGraphQLNonNull(GraphQLSt
我有一个mongoDB数据库,其中一个字段是ISO日期。当我使用graphql(Node)查询查询表时,我收到了我的对象,但是我在graphiql中看到的日期格式是这种奇怪的格式:"created":"SunNov26201700:55:35GMT+0100(CET)"如果我在我的解析器中写出该字段,则显示:2017-11-25T23:55:35.116Z如何更改日期格式以便在graphiql中显示ISO日期?该字段在我的数据类型中只是声明为字符串。编辑我的简单类型定义为:typeMyString{_id:StringmyString:Stringcreated:String}当我将一
我通读了apollo-server-tutorial,我试图只用mongodb复制它——没有sqllite。我来自meteor,所以我正在学习async和mongoose。我对addAuthor()的修改工作正常(我在数据库中看到一条新记录)但graphiql返回null。我如何让它返回预期的字段?mutation{addAuthor(firstName:"falieson",lastName:"p"){_idfirstNamelastName}}{"data":{"addAuthor":null}}架构:https://github.com/Falieson/apollo-serve
我的问题是什么是最佳实践?我正在创建一个后端,它使用GraphQL作为API,并将MongoDB作为数据存储。我知道graphql验证查询,特别是接收到的枚举。我的问题是依赖GraphQL输入枚举验证是否足够或者我是否还应该在数据库级别添加验证。我问这个是因为这似乎是一种不好的做法,而且是不必要的代码重复。您将在两个地方定义可能的枚举类型,一个在GraphQL模式中,一个在MongoDB模型中。例如:gql架构:enumEyeColor{BROWNBLUEGREEN}Mongoose模型:newmongoose.Schema({eyeColor:{type:String,enum:["
typeCategory{id:ID!@idname:String!}typeSubCategoryLevel1{id:ID!@idname:String!parentCategory:Category!@relation(link:INLINE)}typeSubCategoryLevel2{id:ID!@idname:String!parentCategory:SubCategoryLevel1!@relation(link:INLINE)}如果我的Category级别未确定怎么办,我正在使用PrismaORM和MongoDB。 最佳答案
正在关注thistutorial,我有一个Mongoose模型:(我使用术语“帐户”而不是“待办事项”,但它是同一回事)constAccount=mongoose.model('Account',newmongoose.Schema({id:mongoose.Schema.Types.ObjectId,name:String}));和一个GraphQLObjectType:constAccountType=newGraphQLObjectType({name:'account',fields:function(){return{id:{type:GraphQLID},name:{typ
我正在学习graphql。我可以使用查询从我的mongo数据库中检索数据,我可以使用突变创建数据。但是我如何修改现有数据呢?我有点迷路了...我必须创建一个新的突变吗? 最佳答案 是的,每个突变都描述了可以对一些数据执行的特定操作。GraphQL不像REST-它没有指定任何标准的CRUD类型操作。当你写一个突变来更新一些数据时,你有两个选择。让我们在具有completed状态和text字段的待办事项的上下文中解释它们:编写表示语义操作的突变-markTodoCompleted、updateTodoText等编写一个通用突变,仅设置传
尝试运行以下查询时出现此错误:“无法为不可为空的字段User.first_name返回空值。”。我不希望得到空结果。Query:{site(site_reference:123456789){site_namesite_managers{_idfirst_name}}}我希望看到的是:{"data":{"site":{"site_name":"TestSite","site_managers":[{"_id":"5bbcd55ff7bd643be4d490fa","first_name":"Claire"},{"_id":"5b9fa2e1f66fb32164f4d547","firs