【问题标题】:Parent is only ID in GraphQL resolverParent 是 GraphQL 解析器中的唯一 ID
【发布时间】:2019-11-06 06:56:49
【问题描述】:

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

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

Shops {
    _id: ...
    ...
}

另外,我已经准备好 GraphQL 设置和 Schema。但是要获得像

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

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

所以我做了类似的事情:

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

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

【问题讨论】:

    标签: mongoose graphql resolver


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-01-23
      • 2020-02-11
      • 2022-01-12
      • 2019-05-21
      • 2019-09-07
      • 2018-05-13
      • 2019-08-21
      • 1970-01-01
      • 2018-09-07
      相关资源
      最近更新 更多