Graphql - 获取完整的子对象,如果不存在则返回 null

2024-05-08

我有一个 graphql 查询,它得到一个Meeting对象与Client object:

type Meeting {
  address: String!
  client: Client
}
type Client {
  displayName: String!
}

The displayName是必需的,但是client不是。 如果我将其查询为

{
  getMeeting(meetingId: "43bbea6ea0c6112b0abcf11d") {
    address
    client {
      displayName
    }
  }
}

而且这次会议没有客户,然后我收到错误:

Error: Cannot return null for non-nullable field Client.displayName.

我只是希望如果有客户,我会得到其完整的详细信息。如果没有,我会得到client: null.

如果我将从中删除所需的displayName,当 client 为空时它也会工作,我会得到

"client": { "displayName": null }

正如我所料。但我仍在寻找一种方法来强制执行所需的displayName- 仅当有客户时。

在 graphql 中有什么办法可以做到这一点吗?


所以问题是因为mongoose.

当我从数据库中获取数据时,猫鼬添加了空的嵌入子文档client: {}即使没有这样的密钥meeting数据库中的文档(和console.log(meeting)不显示此字段 - 仅console.log(meeting.client) prints client: {}).

Hence graphql尝试返回所需的字段client, 因为client is not undefined和我想的一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Graphql - 获取完整的子对象,如果不存在则返回 null 的相关文章

随机推荐