我在 DynamoDB 中很难在两个日期之间选择一组条目。我的日期是字符串,格式简单为“2018-01-01”。
我应该使用查询还是扫描?我的参数看起来还好吗?该操作似乎有效,但我没有得到任何结果。我究竟做错了什么?
这是我的代码:
// get transactions for {month} and {year}
api.get('/transaction/tab/{year}/{month}', (request) => {
const year = request.pathParams.year
const month = request.pathParams.month
const params = {
TableName: request.env.tableName,
KeyConditionExpression: '#date between :val1 and :val2',
ExpressionAttributeNames: {
'#date': 'date'
},
ExpressionAttributeValues: {
':val1': {
S: year +'-' + month + '-01'
},
':val2': {
S: year + '-' + month + '-' + getDaysInMonth(month, year)
}
}
}
console.log(params)
// post-process dynamo result before returning
dynamoDb.query(params, (err, data) => {
console.log(data)
if (err) {
console.error('Unable to query. Error:', JSON.stringify(err, null, 2))
return 'Unable to query. Error: '+ JSON.stringify(err, null, 2)
} else {
console.log('Query succeeded.')
data.Items.forEach((item) => {
console.log(' -', item.year + ': ' + item.title)
})
return data.Items
}
})
})