我可以在 DyanmoDB 中獲取查詢回應的索引嗎?
[hashKey exists, sortKey exists]
query { KeyCondExp = "hashKey = smthin1", FilterExp = "nonPrimeKey = smthin2" }
我需要根據該選定檔案的 sortKey 的行索引
uj5u.com熱心網友回復:
當 DynamoDBQuery請求回傳一個專案時(在您的示例中由特定過濾器選擇),它將回傳完整的專案,包括排序鍵。如果這就是您所說的“根據 sortKey 的行索引”,那么您就完成了。
但是,如果“索引”是指數字索引 - 即,如果專案是此磁區中的第 100 個排序鍵(散列鍵),則您想要回傳數字 100 - 好吧,您不能這樣做。DynamoDB 將行保留在按排序鍵排序的磁區內,但不編號。您可以在百萬行磁區的中間插入一個專案,它會被插入到正確的位置,但 DynamoDB 不會為了維護數字索引而對百萬行串列重新編號。
但是還有一些你應該知道的。在您描述的查詢中,您使用 aFilterExpression僅回傳整個磁區中的特定行。有了這樣的請求,亞馬遜將向您收取讀取整個磁區的費用,而不僅僅是過濾后回傳的特定行。如果您因讀取整個磁區而被收費,那么您最好只讀取所有內容,而不使用過濾器,然后您可以實際計算行數并獲取匹配的數字索引(如果這是您想要的)。讀取整個磁區將導致您在客戶端進行更多作業(以及更多網路流量),但不會增加您的 DynamoDB RCU 賬單。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/446367.html
標籤:数据库 亚马逊网络服务 亚马逊-dynamodb 限制
