Сравнение меток времени в Dynamodb (ссылка: https://www.abhayachauhan.com/2017/12/how-to-store-dates-or-timestamps-in-dynamodb/) не работает должным образом.
атрибуты Dynamod db со значениями в одну строку:
id : "123",
triggerDate : "2019-06-07T15: 10: 18.252Z"
Не просыпающийся чехол :
Допустим, код выполняется после времени «triggerDate», чтобы встретить «triggerDate» меньше чем «currentTime» (triggerDate < :t
).
var currentTime = new Date();
currentTime = JSON.stringify(currentTime);
console.log("currentTime:", currentTime);
let params = {
TableName: TABLE_NAME,
KeyConditionExpression: "id = :i AND triggerDate < :t",
ExpressionAttributeValues: {
":t": { S: currentTime },
":i": { S: "123"}
}
};
const data = await dynamodb.query(params).promise();
console.log(JSON.stringify(data));
выход
2019-06-08T05:09:02.782Z c4f65ba2-3d3d-43f6-833f-51735bbdcda5 INFO currentTime: "2019-06-08T05:09:02.781Z"
2019-06-08T05:09:03.480Z c4f65ba2-3d3d-43f6-833f-51735bbdcda5 INFO {"Items":[],"Count":0,"ScannedCount":0}
Здесь DynamodB не будет возвращать результат, даже если «triggerDate» меньше чем «currentTime» (triggerDate < :t
).
Рабочий случай : где currentTime жестко закодирован вместо чтения из new Date()
, чтобы встретить «triggerDate» меньше чем «currentTime».
let currentTime = "2019-06-08T05:09:02.781Z";
let params = {
TableName: TABLE_NAME,
KeyConditionExpression: "id = :i AND triggerDate < :t",
ExpressionAttributeValues: {
":t": { S: currentTime },
":i": { S: "123"}
}
};
const data = await dynamodb.query(params).promise();
console.log(JSON.stringify(data));
выход
2019-06-08T04:35:54.775Z 60f87d6c-0ffb-477a-95ab-cfaec8025d53 INFO currentTime: "2019-06-08T05:09:02.781Z"
2019-06-08T04:35:55.594Z 60f87d6c-0ffb-477a-95ab-cfaec8025d53 INFO {"Items":[{"id":{"S":"124"},"triggerDate":{"S":"2019-06-07T15:53:54.107Z"}}],"Count":1,"ScannedCount":1}
Dynamodb вернет результат здесь.
Почему в Не работает DynamoDb не возвращает никаких данных, даже если «triggerDate» меньше чем «currentTime»?
Я что-то пропустил?
Кто-нибудь может объяснить это поведение?