DynamoDB 解组当存在多个 Map 时仅解组一个 Map

问题描述 投票:0回答:1

我在解组从 DynamoDB 表中检索的信息时遇到问题。这是它的原始格式。

{
  "email": {"S": "[email protected]"},
  "name": {"S": "John Doe"},
  "clientConfiguration": {
    "M": {
      "chartTimeScale": {
        "S": "Periodic"
      },
      "naming": {
        "S": "Site"
      }
    }
  },
  "clientName": { "S": "Client" },
  "clientStatus": {"S": "Onboarding" },
  "createdDate": {"S": "2023-09-19T15:46:09.688Z"},
  "pageAccess": {
    "M": {
      "pageOne": {
        "BOOL": false
      },
      "pageTwo": {
        "BOOL": false
      },
      "pageThree": {
        "BOOL": false
      },
      "pageFour": {
        "BOOL": false
      },
      "pageFive": {
        "BOOL": false
      }
    }
  },
  "users": {
    "L": []
  }
}

当我通过

unmarshall(data)
运行此操作时,我得到以下信息:

{
    "email": "[email protected]",
    "name": "John Doe",
    "clientConfiguration": {
        "chartTimeScale": "Periodic",
        "naming": "Site"
    },
    "clientName": "Client" ,
    "clientStatus": "Onboarding" ,
    "createdDate": "2023-09-19T15:46:09.688Z",
    "pageAccess": {
        "M": {
            "Lifts": {
                "BOOL": true
            },
            "Roofs": {
                "BOOL": true
            },
            "HVAC": {
                "BOOL": true
            },
            "Refrigeration": {
                "BOOL": true
            },
            "Car Parks": {
                "BOOL": true
            }
        }
    },
    "users": []
}

我尝试使用 unmarshall 工具并创建我自己的版本。但没有运气。

有谁知道为什么以及如何解决这个问题。我正在使用 NodeJs

javascript node.js amazon-dynamodb unmarshalling
1个回答
2
投票

解决此问题的最简单方法是使用 Document Client,它将您从 DynamoDB 完全使用的类型描述符中抽象出来。

您可以从此博客了解更多信息:

https://aws.amazon.com/blogs/database/exploring-amazon-dynamodb-sdk-clients/

当您显示两个完全不同的项目时,很难判断问题是什么,但我的假设是您在保存项目时对其进行了双重编组。

© www.soinside.com 2019 - 2024. All rights reserved.