我目前有一个问题,我试图在 grapql 中查询嵌套的猫鼬对象,但似乎无法弄清楚
Posted
技术标签:
【中文标题】我目前有一个问题,我试图在 grapql 中查询嵌套的猫鼬对象,但似乎无法弄清楚【英文标题】:I currently have a problem where I'm trying to query a nested mongoose object in grapql but can't seem to figure it out 【发布时间】:2021-04-29 05:24:13 【问题描述】:我在后端使用 mongoose 和 graphql,但在 graphql 解析器中返回嵌套的 mongoose 对象时遇到了一些问题。我可以使用 graphql 突变将数据保存到数据库中,但是当我尝试返回数据时,我在 graphql 游乐场返回 null。
如果有人能够提供帮助,我们将不胜感激。
Mongoose schema
Graphql schema
Graphql mutation and response
如果你看看我的猫鼬模式,你会发现我的用户名嵌套在客户对象中。我不知道如何在 graphql 中访问它,如果有人能够为我提供解决方案,那将是非常有帮助的。谢谢一百万
【问题讨论】:
将代码添加为实时文本(谷歌“降价代码”),而不是屏幕截图。 试试const newUser = await user.save();
(谷歌“异步等待”)
【参考方案1】:
正如您在下面提供的示例中看到的那样。以下属性、客户、地址、运输地址、社交、支付、userFollowers 和 userFollowing 都是我的猫鼬模式中的嵌套对象。下面的示例显示了我如何能够使用 graphql 访问这些嵌套对象。如您所见,您必须使用自定义类型。
const UserType = new GraphQLObjectType( 名称:'用户', 字段:()=>( id:类型:GraphQLID, 日期:类型:GraphQLString, 客户:类型:客户类型, 地址:类型:地址类型, shippingAddress: type: ShippingAddressType , 社会:类型:社会类型, 付款:类型:付款类型, 用户关注者:类型:用户关注者类型, userFollowing: type: UserFollowingType ,
)
);
这是自定义客户类型。我必须为每个嵌套属性做一个。
const CustomerType = new GraphQLObjectType( 名称:'客户', 字段:()=>( 用户名: 类型:GraphQLString , 电子邮件:类型:GraphQLString, 密码:类型:GraphQLString, 性别:类型:GraphQLString, 出生日期:类型:GraphQLString, 生物:类型:GraphQLString ) );
【讨论】:
以上是关于我目前有一个问题,我试图在 grapql 中查询嵌套的猫鼬对象,但似乎无法弄清楚的主要内容,如果未能解决你的问题,请参考以下文章