Aws lambda 如果使用投影表达式在DynamoDb中执行get项,如果表达式中的属性可能不存在,会发生什么
在lambda中,我使用单个字段的投影表达式在表上调用getItem。这很好用Aws lambda 如果使用投影表达式在DynamoDb中执行get项,如果表达式中的属性可能不存在,会发生什么,aws-lambda,amazon-dynamodb,Aws Lambda,Amazon Dynamodb,在lambda中,我使用单个字段的投影表达式在表上调用getItem。这很好用 const usersTableParams={ TableName:'用户', 关键:{ “用户名”:{S:userID} }, ProjectionExpression:“notificationEndpointARN” }; getItem(usersTableParams,函数(err,data){ 如果(错误){ log('获取用户信息时出错',err); } 否则{ //成功 //代码。。。 } });
const usersTableParams={
TableName:'用户',
关键:{
“用户名”:{S:userID}
},
ProjectionExpression:“notificationEndpointARN”
};
getItem(usersTableParams,函数(err,data){
如果(错误){
log('获取用户信息时出错',err);
}
否则{
//成功
//代码。。。
}
});
现在我想向投影表达式添加另一个属性,但该项上可能还不存在该属性。(如果它不存在,我将在函数末尾添加它)
函数是否失败,是否为该属性返回null,是否根本不返回该属性
我在或任何谷歌搜索中都找不到答案。如果投影表达式包含表中不存在的属性,它不会抛出任何错误或返回null 它将不会出现在结果中,并返回找到的其余属性
cli> aws dynamodb get-item --table-name my-DynamoDBTable-I3BL7EX05JQR --key file://test.json --projection-expression "data_type,ts,username"
{
"Item": {
"ts": {
"N": "1600755209826"
},
"data_type": {
"S": "Int32"
}
}
}
有关详细信息,您可以参考以下内容:为什么不尝试一下,并报告您的发现?