Добавление массива массива в Amazon DynamoDB

Я знаю, что AmazonDB поддерживает число, строку, набор чисел и набор строк как типы элементов. Но как насчет набора строкового набора (массив массива или многомерный массив)?

В случае, если это возможно, это единственный способ, который я нашел, что не сработало (с использованием PHP):

$units_frequencies["id"][0] = "400";
$units_frequencies["id"][1] = "401";
$units_frequencies["id"][2] = "402";
$units_frequencies["frequency"][0] = "20";
$units_frequencies["frequency"][1] = "30";
$units_frequencies["frequency"][2] = "50";

// item that will be inserted
$item = array(
    'id' => array(AmazonDynamoDB::TYPE_STRING => $id), 
    'arrays_field' => array(
        AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array(
            AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => $units_frequencies)));

Я не хочу иметь два столбца (один для $ units_frequencies ["id"] и $ units_frequencies ["frequency"]), потому что второй может иметь два индекса с одинаковыми значениями, что не разрешено Dynamo.

Заранее спасибо.


person DMerliMorais    schedule 02.03.2012    source источник
comment
Извините, забыл вставить ошибку, возвращенную DynamoDB (на случай, если это поможет): [body] = ›CFSimpleXML Object ([__type] =› com.amazon.coral.service # SerializationException [Message] = ›Найдено начало структуры или карты где не ожидалось.)   -  person DMerliMorais    schedule 02.03.2012


Ответы (2)


Это не так.
По крайней мере, при просмотре AttributeValue.class (AWS Java SDK)
я также не смог найти никаких подсказок на сайте документации, кроме тех, которые имеют дело с int, string, set of string или набор int

person Chen Harel    schedule 19.03.2012
comment
Ты прав. Я избавился от своей проблемы, используя набор строк, в которых каждый из индексов имеет идентификатор и частоту, например: 400 # 20, 401 # 30 и 402 # 50. - person DMerliMorais; 20.03.2012
comment
Большой! Если вы считаете, что ответ правильный, отметьте его как единицу. - person Chen Harel; 20.03.2012

В конечном итоге вы можете сериализовать свой объект. Дополнительная информация на https://java.awsblog.com/post/Tx1K7U34AOZBLJ2/Using-Custom-Marshallers-to-Store-Complex-Objects-in-Amazon-DynamoDB

person Alex R. R.    schedule 26.08.2013