Как отфильтровать карту в Dynamodb на консоли aws? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть простая таблица, как показано ниже, на DybamoDB

Что мне нужно:

Я пытаюсь отфильтровать атрибут tools_type, который является типом MAP, я хочу отфильтровать антивирус этого столбца MAP , но опция фильтра показывает только тип как строку, число, только логическое значение ... как я могу фильтровать только антивирус и его значение в примере ниже

Примечание: мне нужно сделать фильтр на консоли awsdynamodb

Что пробовал:

введите описание изображения здесь

1 Ответ

1 голос
/ 14 июля 2020

Фильтрация MAP или LIST в веб-консоли невозможна. Вместо этого используйте SDK или REST api.

Вот пример применения фильтра к атрибуту MAP с использованием Python SDK:

введите описание изображения здесь

>>> import boto3
>>> from boto3.dynamodb.conditions import Key, Attr
>>> dynamodb = boto3.resource('dynamodb')
>>> table = dynamodb.Table('example-ddb')
>>> data = table.scan(
...     FilterExpression=Attr('tools_type.antivirus').eq('yes')
... )
>>> data['Items']
[{'pk': '2', 'tools_type': {'antivirus': 'yes'}}]
...