0
我已經在Google上搜索了一段時間,但沒有得到具體的答案。使用DynamoDB映射器進行多鍵查詢
比方說,我有一個存儲人員信息的表,它使用PeopleId作爲散列鍵。有沒有辦法構建一個查詢來返回人員,如果他的Id是1或2?
看起來我可以使用BatchGetItem來做這樣的事情,但它會有更高的延遲?
我已經在Google上搜索了一段時間,但沒有得到具體的答案。使用DynamoDB映射器進行多鍵查詢
比方說,我有一個存儲人員信息的表,它使用PeopleId作爲散列鍵。有沒有辦法構建一個查詢來返回人員,如果他的Id是1或2?
看起來我可以使用BatchGetItem來做這樣的事情,但它會有更高的延遲?
您不能在DynamoDB中擁有主鍵的分區鍵部分的任何條件。你可以在排序鍵上。
因此,您要麼必須執行兩次GetItem,要麼使用BatchGetItem。
謝謝!我只是發現有一個方法expression.withFilterExpression(「id = x或id = y」),但不知道這是否可以減少延遲.http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper .Methods.html#d0e31877 – user3910794
篩選器表達式不能應用於分區鍵,只能應用於排序鍵。對於DynamoDB查詢,您必須擁有精確的分區鍵,並且不能有任何條件。 –
嗨,尼克,我發現filterExpression適用於每一個屬性,但它發生在從dynamoDB得到結果並且返回結果給客戶端之前。您提到的條件適用於排序鍵和散列鍵,並有助於縮短延遲時間。謝謝! – user3910794