AWS DynamoDB扫描操作适用于类级别扫描,但不适用于文档编写器扫描

时间:2018-10-24 19:08:39

标签: javascript node.js amazon-web-services amazon-dynamodb

以下参数在使用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

关于为什么的任何想法?

1 个答案:

答案 0 :(得分:1)

当然,答案是直接盯着我。 万一其他人碰到它而没有立即看到它。

使用javascript的DynamoDB文档客户端使用javascript类型,因此看到了start_dateend_date个对象([object])。{p1

我要做的就是将operand type: M更改为

ExpressionAttributeValues

voilà,它有效。