簡體   English   中英

如何查詢 DynamoDB 中任何項目的 GSI 范圍(即不依賴於分區鍵)?

[英]How do I query the range of a GSI of any item in DynamoDB (i.e. not partition key dependent)?

我在 DynamoDB 中使用 Node.js。 我想獲取過去一個月表中的項目。 我有一個日期 GSI,ID 也與日期相關聯。 我不想使用掃描,因為這個表會增長。 主要問題是它不依賴於項目,並且查詢需要項目分區鍵,這在我的情況下沒有意義。

我嘗試過單獨使用 GSI 進行查詢,並僅使用分區鍵和它自己的 GSI 來查詢范圍。 我不知道如何解決這個問題。

                        TableName: interactionsTable,
                        IndexName: "interactionDate",
                        KeyConditionExpression: "interactionDate between :fDay and :lDay",
                        ExpressionAttributeValues: {                           
                            ":fDay": firstDayStr,
                            ":lDay": lastDatStr
                        },
                    }

我收到一條錯誤消息,指出關鍵條件表達式無效。 有沒有更好的方法來解決這個問題?

您需要以另一種方式配置 GSI。

選擇另一個字段作為分區鍵並將interactionDate設置為GSI 的常規屬性,然后使用過濾查詢在interactionDate之間使用

該錯誤是由於您不能在分區鍵上使用“介於”條件,只能在排序鍵和屬性上使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM