DynamoDB 地图中的随机字符

Random Character in map in DynamoDB

当我更新 DynamoDB 中的一些记录时

UpdateExpression: "set #audioField = :payload",
ExpressionAttributeValues: {
              ":payload": something,
          },

var something = {"test.com1": {}}

DynamoDB 像这样在记录中放入一个随机字符

{ "test.com1" : { "M" : { } }}

这是怎么回事?我该如何防止这种情况?

这不是随机字符,这是 DynamoDB 存储和表示类型的方式。

DynamoDB 在存储的每个值中嵌入类型信息。请参阅以下类型列表:https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_AttributeValue.html

根据上面的链接,您看到的 "M" 描述了 "test.com1" 属性的内容,该属性是地图(M 代表地图)。

您在其他属性中看不到这些的原因可能是因为 SDK 会自动将此 DynamoDB 结构转换为 top-level 属性而非嵌套属性的本机类型。

你在用什么language/SDK?许多 SDK 都有帮助程序,您可以通过这些帮助程序来解析这些嵌入式类型并将它们转换为更易于使用的本机类型。