7

在此处输入图像描述

如何使用扫描操作在 dynamoDb 中查询仅包含“Tue”的对象数组(workingDays)键,我已经使用过滤器表达式进行了查询,但我没有得到任何结果。

var queryData = {
        TableName: tableName,
        FilterExpression: "contains (workingDays, :dayVal)",
        ExpressionAttributeValues: {
            ":dayVal": {
                S:"Tue"
            }
        }
    };

    console.log("getParams ==>", queryData)
    dynamodb.scan(queryData, function (err, details) {
        if (err) {
            console.log(err, err.stack); // an error occurred
            callback(err, null)
        }
        else{
           callback(null, details)

        }
    })
4

1 回答 1

2

查询中的ExpressionAttributeValues包含 String ["S"] 作为值 'Tue' 的 'key',其中与表中一样,'workingDays'包含日期键值的地图对象列表。

试试下面的代码:

var queryData = {
    TableName: tableName,
    ExpressionAttributeNames: {
         "#workingDays": "workingDays",
    },
    FilterExpression: "contains (#workingDays, :dayVal)",
    ExpressionAttributeValues: {
      ":dayVal": {
          "day":"Tue"
      }
   }
};

console.log("getParams ==>", queryData)

docClient.scan(queryData, function (err, details) {
    if (err) {
        console.log(err, err.stack); // an error occurred
       // callback(err, null)
    }
    else{
       // callback(null, details)
       console.log(details);
   }
});
于 2019-01-03T09:55:38.007 回答