Не удалось выполнить поиск по вложенной собственности в консоли DynamoDB AWS

Можно ли искать вложенные свойства с консоли AWS DynamoDB? Я могу выполнять поиск по всем свойствам верхнего уровня, но поиск по любым вложенным свойствам всегда приводит к пусту набору результатов.

Например, для документа, представленного ниже, я могу сканировать и добавлять фильтр в любое поле верхнего уровня, например id, name и т.д.

Однако я не могу сканировать и фильтровать на устройстве. Я пытаюсь использовать фильтр как device.name = 'Xaomi'

{ id: 'jhfdgu75457y8r', имя: "Параг", device: {name: 'Xaomi', страна: 'Китай'} }

Обратите внимание, что я делаю это с консоли AWS, а не с клиентской библиотеки. Консоль AWS разрешает фильтры на вложенных объектах?

Ответ 1

Все данные в DynamoDB сохраняются как строка, двоичный или номер.

Когда вы используете SDK для доступа к DynamoDB, он обычно конвертирует и деконвертирует эти примитивы в сложные типы данных, такие как списки и карты.

Консоль работает только с примитивными типами данных. В этом случае атрибут вашего устройства рассматривается как строка, и поэтому фильтр нельзя фильтровать с помощью вложенного атрибута device.name.

Однако вы можете просто создать строковый фильтр. Например, фильтр по атрибуту устройства, используя оператор contains и значение "name":"Xaomi"

Ответ 2

В поле Тип фильтра "device", а не device.name и выберите "Содержит" вместо "=" в раскрывающемся списке