gpt4 book ai didi

java - 在运行时更改 GSI 投影类型

转载 作者:行者123 更新时间:2023-12-02 09:22:02 30 4
gpt4 key购买 nike

我正在基于LSI的dynamo DB上进行查询表达式,并且LSI的投影类型设置为INCLUDE。如何在运行时将 LSI 投影更改为 INCLUDE ALL?。我看到projectionExpression 可以更改,但是否可行。如果是,请告诉我

Projection projection = new Projection().withProjectionType(ProjectionType.ALL);

queryExpression.setProjectionExpression()

最佳答案

你不能这样做。您的投影属性会在写入时复制到 LSI 中,因此尝试在运行时读取其他投影值会要求获取不存在的数据。

dynamo 中的索引只是针对另一个键插入的数据的副本。 Dynamo 在幕后管理这种重复并使您的索引和主表保持同步。

您需要使用可投影 ALL 的 LSI 重新创建表。我相信您使用的投影 API 适用于投影所有内容但可能希望返回所有内容的子集。

A projection is the set of attributes that is copied from a table into a secondary index. The partition key and sort key of the table are always projected into the index; you can project other attributes to support your application's query requirements. When you query an index, Amazon DynamoDB can access any attribute in the projection as if those attributes were in a table of their own.

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LSI.html

关于java - 在运行时更改 GSI 投影类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58618672/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com