GraphQL.js,关于子字段的参数

GraphQL.js, Arguments on Subfield

我已经使用 GraphQL.js 和 Express 设置了一个 GraphQL 数据库,它从硬编码的 JSON-Object 中获取数据。我的 JSON-对象如下所示:

exports.store = {
"categories": 
 { ... },
"customers":
 { ... },
"vendors":
 { ... },
"items":
 { ... },
"products": 
 { ... },
}

每个类别都有多个条目,每个条目都有子字段,具体取决于类别。我已经为所有类别编写了解析器,例如可以通过 ID 获取特定客户的数据。

我现在要做的是类似于 SQL 中的 WHERE 子句。产品条目如下所示:

"1": {
             "id":1,
             "name":"Coconut",
             "category":{
                 "id":1,
                 "name":"Fruits"
             },
             "vendor":{
                 "id":32,
                 "name":"Exotic Fruits Company"
             }
         },

所以现在我希望能够进行查询,它会为我提供所有具有由其 ID 指定的特定供应商的产品。我能以某种方式重用我已经为此编写的解析器吗?甚至可以在子字段上有一个参数来指定要返回哪个父字段吗?

我不明白 to have an argument on a subfield that specified which of it's parents are to be returned 是什么意思。

我了解到您想要一个 returns 仅具有特定 vendorId 产品的解析器,这应该可行:

type Query {
  products($vendorId: Int): [Product]
}


const resolvers = {
  ...
  products: ({ vendorId }) => {
    return store.products.values().filter(product => product.vendor.id === vendorId);
  },
  ...
};

如果不是这样,请详细说明 ;)