我使用 MongoDB 作为我的联合 Apollo GraphQL API 的数据库。
(我的代码在 TypeScript 中)
我已经为解析器对象创建了一个__resolveReference
方法,当我从如下调用它时它工作正常:Post
user service
User: {
...
firstPost(user: any) {
return { __typename: "Post", _id: user.firstPost };
},
}
...
}
但是,当我在数组上调用它时,它不起作用。以下是我的称呼:
User: {
...
posts(user: any) {
user.posts.map((x: any) => {
return { __typename: "Post", _id: x };
});
},
...
}
邮编__resolveReference
如下:
Post: {
...
async __resolveReference(reference: any, { db }: any) {
console.log(reference);
console.log(reference._id);
try {
let r = (await db
.collection("posts")
.findOne({ _id: new ObjectID(reference._id) })) as Post;
console.log(r.content);
return r;
} catch (err) {
console.log(err.stack);
}
},
...
我知道从对象上的解析器__resolveReference
调用时没有“命中”,因为终端中没有显示 s,同样,仅来自解析器而不是。posts
User
console.log()
posts
firstPost
我需要一些帮助来获得__resolveReference
数组的工作。
谢谢你。