簡體   English   中英

過濾 Dynamo DB 行

[英]Filter Dynamo DB rows

我想過濾所有 dynamo db 行,其中 2 列具有相同的值

 table = client.Table('XXX')
   response = table.query(
   KeyConditionExpression=Key('column1').eq(KeyConditionExpression=Key('column2'))
 )

這是錯誤的,因為我們不能在 eq 語句中傳遞 KeyConditionExpression。 我不想掃描所有行並過濾行。

通過多極資源和答案進行掃描,但每個資源都談到了多列檢查,其中包含一些值而不是涉及列的多個條件

無論如何我們可以做到這一點嗎?

是的,這是可能的。

如果要查詢需要使用的所有記錄scan ,如果只想查詢具有特定分區鍵的記錄,則可以使用query

對於這兩者,您都可以使用FilterExpression ,它將在從數據庫中檢索記錄后過濾記錄,但在將它們返回給用戶之前(因此請注意,使用掃描將讀取您的所有記錄)。

來自 CLI 的掃描可能如下所示:

aws dynamodb scan \
    --table-name your-table \
    --filter-expression "#i = #j" \
    --expression-attribute-names '{"#i": "column1", "#j": "column2"}'

創建分區鍵為“Column1Value#Column2Value”的全局二級索引

然后只需查詢 GSI 即可。

暫無
暫無

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

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