Фильтрация записей DynamoDb по нескольким ключам с использованием PHP (Laravel5) - PullRequest
0 голосов
/ 13 мая 2019

Я управляю приложением Laravel 5, которое хранит данные в таблице AWS DynamoDb.
Имеет 3 столбца:

  • id: первичный ключ раздела
  • период: первичный ключ сортировки
  • данные: большая зашифрованная строка (~ 50 ko)

Я использую https://github.com/baopham/laravel-dynamodb для взаимодействия с этим хранилищем.

Операции CRUD для отдельных записей в порядке.
Но мне также нужно считать / перечислять / удалять записи, отфильтрованные по id и / или period .

Псевдокод:

function scope($mode) {
    $scope = DynamoDbEntry::orderBy('id')->orderBy('period');

    if (!empty($ids)) {
        $scope->whereIn('id', $ids);
    }

    if (!empty($periods)) {
        $scope->whereIn('period', $periods);
    }

    if ($mode === 'count') {
        return $scope->count();
    }

    if ($mode === 'delete') {
        $scope->delete();
        return true;
    }

    return $scope->get();
}

Эта часть работает не очень хорошо: кажется, что запросы «видят» только первые Мб данных. Например, запрос подсчета без фильтра говорит, что таблица содержит только 15 записей вместо 94.

Я новичок в мире NoSQL и полагаю, что у меня проблемы с пониманием.

Хорошо ли организованы данные, чтобы делать то, что мне нужно?
Как я могу отфильтровать записи по нескольким ключам?

Любое просвещение будет по достоинству оценено. Спасибо: -)

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