【问题标题】:Read column from Datastore Amplify using react使用反应从 Datastore Amplify 读取列
【发布时间】:2022-06-18 00:08:58
【问题描述】:

我正在使用 AWS 放大数据存储库编写一个反应应用程序,我想阅读一整列并将其放在下拉选择菜单中。我已经完成了 UI 的设计,但我不知道如何只获得一列而不是获得整个表格 目前我的查询语句看起来像这样 await Datastore.query(myTable); 这将返回整个表。我想知道我是否可以获得 myTable.id ,其中 'id' 是列名

【问题讨论】:

  • 出于性能原因是否需要查询特定列?因为如果不是这种情况,您可以遍历响应并使用.map 检索ids
  • 感谢@samuelsilva 的回复,我能够使用.map 检索特定列,但我想有什么办法可以只提取单个列的数据,而不是获取整个表和然后使用地图获取所需的数据,要回答您的问题,是的,出于性能原因,我需要查询特定列
  • 也是另一种选择,你能做类似本期建议的事情吗:github.com/aws-amplify/amplify-cli/issues/5155

标签: reactjs amazon-web-services aws-amplify


【解决方案1】:

因为 Amplify Datastore 已经在维护数据的本地副本,所以上面 Samuel 的建议是合理的。编写const ids = await Datastore.query(myTable).map(record => record.id) 之类的内容来获取表中所有记录的id 字段应该可以工作,除非您的数据非常庞大(在这种情况下,我想您不会尝试这样做来填写下拉列表UI)这应该相当快。

另一种选择是使用API 类别https://docs.amplify.aws/lib/graphqlapi/query-data/q/platform/js/ 和一个自定义graphql 文档进行查询,该文档仅在选择集中包含id,但这并不是真正推荐的,因为您需要点击在这种情况下,您的后端 API 是不必要的,而不是依赖于 Datastore 维护的本地数据。

【讨论】:

    猜你喜欢
    • 2020-08-17
    • 1970-01-01
    • 2023-02-12
    • 2021-05-08
    • 2022-12-14
    • 2021-11-25
    • 2023-03-20
    • 1970-01-01
    • 2018-11-01
    相关资源
    最近更新 更多