当我像这样更新DynamoDB中的某些记录时
UpdateExpression: "set #audioField = :payload",
ExpressionAttributeValues: {
":payload": something,
},
var something = {"test.com1": {}}
DynamoDB这样在记录中放置一个随机字符
{ "test.com1" : { "M" : { } }}
这是怎么回事?以及如何防止这种情况?
答案 0 :(得分:2)
这不是随机字符,这是DynamoDB存储和表示类型的方式。
DynamoDB将类型信息嵌入到每个存储的值中。有关类型的列表,请参见以下内容:https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_AttributeValue.html
基于上面的链接,您看到的"M"
描述的是地图“ test.com1”属性的内容(对于地图来说是M)。
之所以在其他属性中看不到这些原因,可能是因为SDK会自动将此DynamoDB结构转换为顶级属性(而不是嵌套属性)的本机类型。
您使用的是哪种语言/ SDK?许多SDK都有帮助程序,您可以通过它们传递结果以解析这些嵌入式类型,并将其转换为更易于使用的本机类型。