У меня есть маленький скрипт nodejs, подключенный к моему DynamoDB, и один из моих основных ключей сортировки - это datetime, который представлен в UTC.Интеграция AWS DynamoDB и Nodejs - как фильтровать между двумя датами?
Я хотел бы отфильтровать результаты на определенную дату и время, и у меня возникли проблемы с моей фильтрацией.
var params = {
TableName: "realtimeusers",
ProjectionExpression: "brand, datetime, activeusers",
KeyConditionExpression: "brand = :brand",
FilterExpression: "datetime > :today",
ExpressionAttributeValues: {
":brand": "BRAND A",
":today": 1464705900
},
};
Я получаю сообщение об ошибке:
"message": "Invalid FilterExpression: Attribute name is a reserved keyword; reserved keyword: datetime",
Я думаю, что я что-то в моем выражении фильтра, что я не в полной мере ухватить отсутствует.
Может ли кто-нибудь помочь?
У вас есть атрибут DATETIME в вашей динамо записи? Это зарезервированное ключевое слово. Попробуйте использовать имена атрибутов Expression. Вот ссылка на документацию aws. http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html – Shibashis
@Shibashis Да, это значит, что я не должен иметь его и должен удалить мою базу данных и перезапустить? – turtlepower
Не удаляйте ничего. Использовать имена атрибутов выражения http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html#ExpressionAttributeNames – Shibashis