【问题标题】:DynamoDB FilterExpressions with BETWEENDynamoDB FilterExpressions 与 BETWEEN
【发布时间】:2019-11-16 12:59:01
【问题描述】:

我正在对我的 DynamoDB 表执行扫描操作,然后过滤结果以在 NODE.js 中包含两个日期之间的项目

DynamoDB 表的数据格式如下:

{
      TableName: tableName,
      Item: {
      "visitorID": visitorIDq, // Primary Key
      "dateID":   dateTime, // What I am filtering the scan for
      "visitorName": "END OF Q",
      "employeeName": "END OF Q",
      "comments":  "END OF Q"
}

当前代码:

var date1 = String(threeMonths); // milliseconds since epoch - 3 months in milliseconds 
var date2 = String(dateTime); // milliseconds since epoch aka now
var params2 = {
    TableName: tableName,
    FilterExpression: "dateID BETWEEN :date1 and :date2",
    ExpressionAttributeValues: {
    ":date1": { "S": date1},
    ":date2": { "S": date2}
            }
};

我收到此错误:

错误无法扫描表。错误 JSON:{“消息”:“无效 FilterExpression:运算符或函数的操作数类型不正确; 运算符或函数:BETWEEN,操作数类型:M"、"code": "ValidationException", "time": "2019-07-06T02:00:44.569Z",
"requestId": "REQUESTID1294743204701HHH443", "statusCode": 400,
“可重试”:假,“重试延迟”:26.7865000058784 }

经过一些互联网搜索后,我有点卡住了,在 node.js 中并没有真正找到有这个问题的其他人。有什么想法吗?

由于某种原因,堆栈溢出告诉我这主要是代码。我认为我在解释和提供细节方面做得很好。这是占位符文本,因为我正在尝试发布。它仍在发生。细节。细节。详情。

【问题讨论】:

    标签: node.js amazon-dynamodb


    【解决方案1】:

    正确的分辨率:

    var dateID = String("\""+ threeMonths + "\""); // var for time in milliseconds, stringifying
    var params2 = {
      ExpressionAttributeValues: {
        ':msID' : dateID
      },
      FilterExpression: "dateID >= :msID", // dateID column in DDB is greater than epoch - 3 months
      TableName: "Visitor"
    };
    
    JSON.stringify(params2); //params are stringified here for the scan
    

    具体来说:

    
    ExpressionAttributeValues: {
        ':msID' : "15666767546459" // or whatever value you are comparing, the above resolution has dateID there because its a var getting current time
      }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-15
      • 2011-06-16
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      相关资源
      最近更新 更多