Mongoose Graphql-获取完整的子对象,如果不';不存在

Mongoose Graphql-获取完整的子对象,如果不';不存在,mongoose,graphql,Mongoose,Graphql,我有一个graphql查询,它获取一个会议对象和客户对象: type Meeting { address: String! client: Client } type Client { displayName: String! } displayName是必需的,但是client不是必需的。 如果我质疑它是 { getMeeting(meetingId: "43bbea6ea0c6112b0abcf11d") { address client { d

我有一个graphql查询,它获取一个
会议
对象和
客户
对象:

type Meeting {
  address: String!
  client: Client
}
type Client {
  displayName: String!
}
displayName
是必需的,但是
client
不是必需的。 如果我质疑它是

{
  getMeeting(meetingId: "43bbea6ea0c6112b0abcf11d") {
    address
    client {
      displayName
    }
  }
}
这次会议没有客户,那么我得到一个错误:

Error: Cannot return null for non-nullable field Client.displayName.
我只是想,如果有客户,我会得到它的全部细节。如果没有,我将得到
client:null

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

“客户端”:{
“displayName”:空
}

如我所料。但是我仍然在寻找一种方法来在
displayName
上强制执行所需的命令-只有在有客户端的情况下


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

所以问题是因为猫鼬

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


因此
graphql
尝试返回
client
的必填字段,因为
client
并不像我想的那样是
未定义的

您的查询解析程序是什么样子的?我在您的评论之后再次检查了解析程序,这不是问题,但它帮助我找到了真正的问题,这是因为猫鼬,我在下面发布了一个答案。谢谢