AWS Appsync 和 DynamoDB - 使用 IN 运算符进行查询

AWS Appsync and DynamoDB - Query using IN operator

我在 DynamoDB 中有一个 table 连接到应用程序同步 API。 table 看起来像...

ID State Value
0 NY 100
1 IL 0
2 TX 50

我正在尝试使用 appsync UI 通过“IN”运算符查询 table,但这似乎不是通过 Appsync 的选项。例如,我可能希望查询状态为 'TX' 或 'IL' 的行。我认为查询可能看起来像...

query MyQuery {
  listResults(filter: {state: {in: ["TX", "IL"]}}) {
    items {
      id
      state
      value
    }
  }

但是,appsync 似乎不支持 IN 运算符。我有“eq”、“gt”、“lt”等选项,但没有 IN 运算符的选项。似乎是一个非常标准的用例,但我正在努力寻找文档。如果是这种情况,可能的解决方法是什么?我尝试过使用自定义解析器,但找到了明确的答案。

约束与 Amplify 相关,does not support the IN operator 开箱即用。如您所知,高级 Amplify 抽象出一些您必须在 AppSync 和数据源中手动执行的应用程序管道。代价是缺乏灵活性。

Appsync 可以很好地处理您的 MyQuery。 AppSync 也没有定义 in 运算符(或 gtlt 或其他)。只是在 AppSync 中,您可以自由定义您认为合适的类型和解析器。灵活性,但更多样板文件。

如果您坚持使用 Amplify,则可以使用新的输入类型手动修改模式。然后实现一个 Amplify custom resolver 和 link 你的新类型。