以下参数在使用dynamoDB.scan(params, function);
的扫描操作中返回预期结果
const dynamoDB = new AWS::DynamoDB();
let params = {
TableName: ACCOUNT_USAGE_TABLE,
ExpressionAttributeValues: {
":start_date": {
S: new Date(event.start_date).toISOString(),
},
":end_date": {
S: new Date(event.end_date).toISOString()
}
},
ExpressionAttributeNames: {
"#usage_date": "date",
},
FilterExpression: "#usage_date BETWEEN :start_date AND :end_date",
ExclusiveStartKey: event.LastEvaluatedKey
};
但是当将dynamoDB.documentClient.scan(params, function)
与
ValidationException: Invalid FilterExpression: Incorrect operand type for operator or function; operator or function: BETWEEN, operand type: M
关于为什么的任何想法?
答案 0 :(得分:1)
当然,答案是直接盯着我。 万一其他人碰到它而没有立即看到它。
使用javascript的DynamoDB文档客户端使用javascript类型,因此看到了start_date
和end_date
个对象([object]
)。{p1
我要做的就是将operand type: M
更改为
ExpressionAttributeValues
voilà,它有效。