Aws lambda 如果使用投影表达式在DynamoDb中执行get项,如果表达式中的属性可能不存在,会发生什么

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); } 否则{ //成功 //代码。。。 } });

在lambda中,我使用单个字段的投影表达式在表上调用getItem。这很好用

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"
        }
    }
}

有关详细信息,您可以参考以下内容:

为什么不尝试一下,并报告您的发现?