#ios #amazon-web-services #amazon-dynamodb
#iOS #amazon-веб-сервисы #amazon-dynamodb
Вопрос:
Я пытаюсь создать приложение, в котором запрашивается база данных пользователей с относительно сложным набором параметров запроса. Я нашел базовую документацию о том, как выполнять запросы с помощью aws mobile sdk (http://docs.aws.amazon.com/mobile/sdkforios/developerguide/dynamodb_om.html ) но я не уверен, как выполнять более сложные операции (т.е. Несколько условий запроса одновременно).
В качестве примера, если я хочу запросить базу данных для пользователей, содержащих определенные значения в атрибуте list и подпадающих под определенные атрибуты lat и lon, как я могу это сделать?
Возможно, это может быть невозможно с помощью dynamo, но если нет, то какой тип базы данных мне следует использовать и где будет документация для формирования этих составных запросов в iOS?
Спасибо
Ответ №1:
Вы можете настроить ключи диапазона для таких значений, а затем выполнить запрос с помощью rangeKeyConditionExpression . Что-то вроде этого:
AWSDynamoDBQueryExpression *queryExpression = [AWSDynamoDBQueryExpression new];
queryExpression.indexName = @"Author-Price-index";
queryExpression.hashKeyAttribute = @"Author";
queryExpression.hashKeyValues = @"John Smith";
queryExpression.rangeKeyConditionExpression = @"Price < :val";
queryExpression.expressionAttributeValues = @{@":val":@50};
Это должно дать вам представление о том, как добиться некоторой фильтрации. Вы также можете использовать логические операции и кондиционирование для установки нескольких фильтров. См.: http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html
Спасибо, Рохан