Да, имя атрибута может содержать Dot
.Однако, по моему мнению, не рекомендуется иметь Dot
в имени атрибута.Обычно Dot
будет использоваться для навигации по дереву в атрибуте Map
.
Ниже приведены правила именования для DynamoDB:
Все имена должны быть закодированы с использованием UTF-8 и чувствительны к регистру.
Имена таблиц и индексов должны быть длиной от 3 до 255 символов и могут содержать только следующие символы:
az
AZ
0-9
_ (подчеркивание)
.(точка)
Имена атрибутов должны быть длиной от 1 до 255 символов.
Доступ к элементам карты: -
Операция разыменования для элемента карты есть.(точка).Используйте точку в качестве разделителя между элементами на карте:
MyMap.nestedField
MyMap.nestedField.deeplyNestedField
Я могу создать элемент с именем атрибута, содержащийDot
и успешно запросите элемент с помощью FilterExpression.
Он работает аналогично во всех языковых пакетах SDK AWS.Пока тип данных определен как String, он будет работать как положено.
Некоторые примеры JS: -
Создать элемент: -
var table = "Movies";
var year = 2017;
var title = "putitem data test 2";
var dotAttr = "object.nestedObject.myAttribute";
var params = {
TableName:table,
Item:{
"yearkey": year,
"title": title,
"object.nestedObject.myAttribute": "S123"
},
ReturnValues : 'NONE'
};
Обновление: -
Отлично работает и с аннотацией @DynamoDBAttribute
.
private String dotAttr;
@DynamoDBAttribute(attributeName = "object.nestedObject.myAttribute")
public String getDotAttr() {
return dotAttr;
}