DynamoDB中地图中的随机字符

时间:2019-05-26 23:43:08

标签: amazon-web-services amazon-dynamodb aws-sdk

当我像这样更新DynamoDB中的某些记录时

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

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

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

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

这是怎么回事?以及如何防止这种情况?

1 个答案:

答案 0 :(得分:2)

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

DynamoDB将类型信息嵌入到每个存储的值中。有关类型的列表,请参见以下内容:https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_AttributeValue.html

基于上面的链接,您看到的"M"描述的是地图“ test.com1”属性的内容(对于地图来说是M)。

之所以在其他属性中看不到这些原因,可能是因为SDK会自动将此DynamoDB结构转换为顶级属性(而不是嵌套属性)的本机类型。

您使用的是哪种语言/ SDK?许多SDK都有帮助程序,您可以通过它们传递结果以解析这些嵌入式类型,并将其转换为更易于使用的本机类型。