Я управляю приложением 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 и полагаю, что у меня проблемы с пониманием.
Хорошо ли организованы данные, чтобы делать то, что мне нужно?
Как я могу отфильтровать записи по нескольким ключам?
Любое просвещение будет по достоинству оценено.
Спасибо: -)