父级是GraphQL解析器中的唯一ID

时间:2019-06-24 12:54:15

标签: mongoose graphql resolver

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

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

Shops {
    _id: ...
    ...
}

我还已经安装了GraphQL安装程序和架构。但是要获得

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

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

所以我做了类似的事情:

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

但是shopID是未定义的,当我通过控制台记录父对象时,它只是父ID。 现在我的问题是:我真的必须再次用猫鼬查找父母以获得ShopID吗? 我还没有找到任何相关的问题,所以希望这个问题尚未得到解答。 谢谢!

1 个答案:

答案 0 :(得分:0)

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