gpt4 book ai didi

aws-lambda - DynamoDB DocumentClient 将字符串集 (SS) 属性作为对象返回

转载 作者:行者123 更新时间:2023-12-03 17:32:53 24 4
gpt4 key购买 nike

我是 DynamoDB 的新手。
当我使用 AWS.DynamoDB.DocumentClient 类从表中读取数据时,查询有效,但我得到的结果格式错误。

询问:

{
TableName: "users",
ExpressionAttributeValues: {
":param": event.pathParameters.cityId,
":date": moment().tz("Europe/London").format()
},
FilterExpression: ":date <= endDate",
KeyConditionExpression: "cityId = :param"
}

预期的:
{ 
"user": "boris",
"phones": ["+23xxxxx999", "+23xxxxx777"]
}

实际的:
{ 
"user": "boris",
"phones": {
"type": "String",
"values": ["+23xxxxx999", "+23xxxxx777"],
"wrapperName": "Set"
}
}

谢谢!

最佳答案

[ 解码 ] 函数来自 [ AWS.DynamoDB.Converter ] 是一种解决方案,如果您的数据来自例如:

{
"Attributes": {
"last_names": {
"S": "UPDATED last name"
},
"names": {
"S": "I am the name"
},
"vehicles": {
"NS": [
"877",
"9801",
"104"
]
},
"updatedAt": {
"S": "2018-10-19T01:55:15.240Z"
},
"createdAt": {
"S": "2018-10-17T11:49:34.822Z"
}
}
}

请注意每个属性的 object/map {} 规范,其中包含 attr 类型。
表示您正在使用 [ 动态数据库 ] 类而不是 [ DynamoDB.DocumentClient ]。
[ 解码 ] 将 DynamoDB 记录转换为 JavaScript 对象。

由 AWS 声明和支持。引用 https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/Converter.html#unmarshall-property

尽管如此,我遇到了与您完全相同的用例。在我的例子中只有一个属性,即 TYPE SET (NS),我必须手动完成。 下一个片段 :
 // Please notice the <setName>, which represents your set attribute name
ddbTransHandler.update(params).promise().then((value) =>{
value.Attributes[<setName>] = value.Attributes[<setName>].values;
return value; // or value.Attributes
});

干杯,
村庄

关于aws-lambda - DynamoDB DocumentClient 将字符串集 (SS) 属性作为对象返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50823301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com