Атрибут объекта сканирования Dynamodb в массиве - PullRequest
0 голосов
/ 31 октября 2018

Как фильтровать вложенные атрибуты в массиве? Например, с помощью приведенной ниже схемы, как мне сканировать местоположения с location_id, равным «xxxx»?

{
    "locations": [
        {
            "location_id": "xxxx",
            "location_name": "location x"
        },
        {
            "location_id": "yyyyy",
            "location_name": "location y"
        }
    ]

}

1 Ответ

0 голосов
/ 31 октября 2018

К сожалению, Dynamo не поддерживает условное выражение contains(), где путь вложен в набор.

например. он сможет поддерживать contains(locations, xxxx), если местоположение не было набором карт, но не может contains(locations.location_id, xxxx) или locations. contains(location_id, xxxx).

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

Это означает, что для «сложных» фильтров, которые вы хотите, столь же экономически эффективно фильтровать возвращаемые результаты самостоятельно.

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