gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:13:29 25 4
gpt4 key购买 nike

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

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

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

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

而这个 session 没有客户端,那么我得到一个错误:

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

我只希望如果有客户,我将获得其全部详细信息。如果没有,我会得到 client: null .

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

"client": {
"displayName": null
}

如我所料。但我仍在寻找一种方法来强制要求 displayName - 仅当有客户时。

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

最佳答案

所以问题是因为 mongoose

当我从数据库中获取数据时, Mongoose 会添加 client:{} 的空嵌入式子文档,即使 meeting 文档中没有这样的键在数据库中(并且 console.log(meeting) 不显示此字段 - 只有 console.log(meeting.client) 打印 client: {}/)。

因此 graphql 尝试返回 client 的必填字段,因为 client 不是我想的 undefined .

关于mongoose - Graphql - 获取完整的子对象,如果不存在则返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43045639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com