如何在不查询的情况下获取子字段的id



如何在不查询数据库中元素的情况下获取子字段的ID。

我目前的方法是查询子领域项目

query GetUser($id: ID!) {
getUser(id: $id){
id
project{
id
}
}
}

我需要这样的解决方案:

query GetUser($id: ID!) {
getUser(id: $id){
id
project
}
}

所以我不必查询子字段。

假设您现在有逻辑

function resolveProject(user, args, context) {
return loadProject(user.project_id);
}

这就是你问的原因。查询确实需要是

project {
id
}

所以你不能更改它,但你可以更改查询函数,只在使用id以外的属性时才延迟加载项目,例如

function resolveProject(user, args, context) {
let promise;
function getProject() {
// you can always skip the caching logic if `loadProject` 
// uses a DataLoader or something like it.
if (!promise) {
promise = loadProject(user.project_id);
}
return promise;
}
return {
id: user.project_id,
someProp: async () => (await getProject()).someProp,
otherProp: async () => (await getProject()).otherProp,
};
}

有了这样的解析器,

project {
id
}

与访问user.project_id相同,并且不为项目本身查询数据库。

最新更新