我使用GraphQL.js和Express建立了一个GraphQL数据库,它从硬编码的JSON-Object中获取数据。我的JSON-Object看起来像这样:
exports.store = { “类别”: {...}, “顾客”: {...}, “供应商”: {...}, “项目”: {...}, “品”: {...}, }
根据类别,每个条目的每个类别和子字段都有多个条目。我为所有类别编写了解析器,例如可以通过id获取特定客户的数据。
我现在想要做的是类似于SQL中的WHERE-Clause。产品条目如下所示:
“1”:{ “ID”:1, “名”:“椰子” “类别”:{ “ID”:1, “名”:“水果” }, “供应商”:{ “ID”:32, “名称”:“异国水果公司” } },
所以现在我希望能够进行查询,这会给我所有产品都有一个由其ID指定的特定供应商。我可以以某种方式重用我已经为此编写的解析器吗?甚至可以在子字段上设置一个参数,指定要返回哪个父项?
答案 0 :(得分:1)
我不明白你对to have an argument on a subfield that specified which of it's parents are to be returned
的意思。
我读过你想要一个仅返回具有特定vendorId
的产品的解析器,这应该有效:
type Query {
products($vendorId: Int): [Product]
}
const resolvers = {
...
products: ({ vendorId }) => {
return store.products.values().filter(product => product.vendor.id === vendorId);
},
...
};
请详细说明情况并非如此;)