Запрос диапазона дат не работает в DynamodB - PullRequest
0 голосов
/ 28 января 2019

Я новичок в AWS DynamodB и нажал на запрос, как показано ниже

let params = {
    TableName: tableName
};
if (from && to) {
    params.FilterExpression = 'createdOn >= :from and createdOn <= :to';
    params.ExpressionAttributeValues = { ":from": from, ":to": to }
}

return new Promise((resolve, reject) => {
    docClient.scan(params, (err, data) => {
        if (err) {
        //do stuff
      }else{//do stuff}
   });  
});

, и вот моя схема БД

 const ApplicationDataSchema = {
    TableName: "data1", //config.get('aws_tables.APPLICATIONS_DATA'),
    KeySchema: [
    { AttributeName: "id", KeyType: "HASH" },
    { AttributeName: 'createdOn', KeyType: 'RANGE' }
    ],
    AttributeDefinitions: [
    { AttributeName: "id", AttributeType: "S" },
    { AttributeName: 'createdOn', AttributeType: 'N' }
    ],
    ProvisionedThroughput: {
      ReadCapacityUnits: 10,
      WriteCapacityUnits: 10
    }
  }

есть ли необходимость изменить схему, яне получить правильный результат.Поле createOn содержит время epoc, например: "1548659664131"

1 Ответ

0 голосов
/ 28 января 2019

Если вы хотите использовать выражение фильтра с 2 датами, вы, вероятно, ищете оператор BETWEEN.

Я предлагаю вам взглянуть на это руководство по AWS для использования DynamodB с Javascript.

...