Parent 只是 GraphQL 解析器中的 ID

Parent is only ID in GraphQL resolver

所以我有一个关系型 mongo 数据库,看起来像这样

Location {
    _id: ...
    shopIDs: <List of Shop IDs in another collection>
}

Shops {
    _id: ...
    ...
}

此外,我已经准备好我的 GraphQL 设置和架构。但是要获得像

这样的查询
locations {
    shops {
        name
    }
}

我需要创建另一个将 shopIDs 字段连接到商店集合的解析器,对吗?

所以我做了类似的事情:

Location: {
        shopIDs: async ({ shopIDs }, args, context) => {
            return await Shop.find({ _id: { $in: shopIDs } });
        }
},

但是 shopIDs 未定义,当我控制台记录父对象时,它只是父对象的 ID。 现在我的问题是:我真的必须再次查找带有 mongoose 的父级才能获得 ShopIDs 吗? 我还没有找到任何相关的问题,所以我希望这还没有得到回答。 谢谢!

我不完全确定为什么,但问题已解决。 第一个参数定义为父级,因此您可以从那里访问 ID 并可以查找子级,而无需再次查找父级。 如果 Child ID 未定义,则可能是由 mongoose 模型本身引起的。因此,如果您有类似的问题:仔细检查您的架构并确保该字段已实际定义。