簡體   English   中英

Map 中的列表的 DynamoDB 更新表達式

[英]DynamoDB Update Expression For list in a Map

我有以下 dynamoDB 架構:

{
    "Id": {"N": "789"},
    "ProductCategory": {"S": "Home Improvement"},
    "productReviews": {
        "M": {
            "FiveStar": {
                "L": [
                    { "S": "Best product ever!" }
                ]
            },
          "FourStar": {
                "L": [
                    { "S": "Good product" },
                  { "S": "Another Review" }
                ]
            }
        }
    }
}

所以基本上我有一個 map productReviews ,它的鍵為 - “FourStar”、“FiveStar”、“TwoStar”等,價值為評論列表。

我想在此表中添加新評論,即如果出現五星級評論,我會將其添加/附加到productReviews的“五星級”列表中。 如果 map 中不存在某個鍵,我想只是 append 的鍵值。

這在 DynamoDB 中是否可行,或者我必須自己合並列表,然后在每次寫入時更新。

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET

如果你想要這個 model,你需要自己合並和更新。

將每個星值設為自己的項目可能更簡單(為它們提供所有相同的 PK,並帶有表示星值的 SK),因此您可以將它們作為單個項目直接更新為帶有 append 的字符串列表的單個項目。

根據您的訪問模式,您甚至可能希望每個評論都作為自己的項目(仍然在同一個 PK 下)。 例如,如果該項目隨着時間的推移收到一千條評論,那么如果您每次只能盲目地添加一個小項目,您就不想重復更新一個不斷增長的項目。

在檢索時,使用 PK 查詢仍然有效。

暫無
暫無

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

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