使用 Amplify 的 @key 指令创建单个 LSI

问题描述

我正在尝试使用 @key 指令在 DynamoDB 中创建索引,但我得到了一些我认为(?)可以被视为一种奇怪行为的东西。

片段:

type TruckStock
    @model(timestamps:{createdAt: "createdAt",updatedAt: "updatedAt"})
    @key(fields: ["truckId","variantId"])
    @key(name: "byProduct",fields: ["truckId","productId"],queryField: "listTruckStockByProduct")
    @key(name: "byTruckId",fields: ["truckId"],queryField: "listTruckStockByTruck")
{
    truckId: ID!
    variantId: ID!
    productId: ID!
    quantity: Int!
}

我正在努力实现以下目标:

  • truckId 将是哈希值,而 variantId 将是我的范围值。
  • productId 将成为 LSI。
  • 可以获取特定 truckId 的所有条目(无需查询特定 productId/variantId)。

目前,Amplify 创建了 2 个 GSI - 一个用于 truckId,另一个用于 {hash: truckId,range: productId}

我做错了吗?有没有更好的方法来做到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)