我目前有一个问题,我试图在 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 中查询嵌套的猫鼬对象,但似乎无法弄清楚的主要内容,如果未能解决你的问题,请参考以下文章

在嵌套子查询中显示配置单元分区

SQL Oracle中子查询的工作

聚合查询从嵌套子文档中获取最新元素的计数

SQL相关子查询和嵌套子查询的区别

关于SQL DELETE嵌套子查询问题

SQL查询语句SELECT中带有case when嵌套子查询判断的问题