AWS Dynamodb BatchGet с FilterExpression - PullRequest
0 голосов
/ 28 апреля 2018

Я хочу получить список элементов из таблицы Dynamodb на основе некоторых фильтров. В разделе «Фильтры» у меня есть мой список хеш-ключей (должны быть возвращены записи, имеющие один из этих хеш-ключей) и еще несколько фильтров для записи, например, поле «status» со значением «утверждено». Поэтому, если у элемента есть хэш-ключ из моего списка И значение поля статуса «утверждено», его следует вернуть.
Как я могу это сделать ?
Я не могу использовать QUERY, потому что, согласно моему пониманию, он ожидает только 1 значение хеш-ключа.
Я не могу использовать BatchGet, потому что он не принимает выражение фильтра.

1 Ответ

0 голосов
/ 28 апреля 2018

Вы можете использовать BatchGet, чтобы получить элементы и отфильтровать их по вашей собственной функции.

Документ: Работа с запросом

Операция Query может извлечь максимум 1 МБ данных. Этот предел применяется до оценки выражения фильтра.

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

Если вы хотите, чтобы динамо выполняло тяжелую фильтрацию данных за вас, тогда вы можете попробовать "multi-query" вместо BatchGet.

Вот некоторые соответствующие ссылки, В чем разница между BatchGetItem и Query в DynamoDB?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...