У меня есть таблица DynamoDb customers
.
В этой таблице у меня 20 миллионов строк данных.
Схема таблицы:
- Ключ раздела- group_id
- Ключ сортировки - customer_email
У меня есть атрибут с именем
"assigned_lists": [
"e9d55940-77da-11e9-9c25-df4d7393de10",
...
]
в этой таблице.assigned_lists
- это тип списка строк.Я хочу того клиента, который принадлежит к какой-то assigned_lists
.Просто я искал функцию содержимого динамо-базы данных
FilterExpression: "contains(#list, :searchForThisList)"
Я запрашиваю на этой таблице ограничение в 100, значит мне нужно 100 клиентов, которые принадлежат данному assigned_lists
один клиент может быть в несколькихassigned_lists
поэтому я использую тип данных LIST.
Мой подход к ограничению:
Ограничение: 100,
Dynamo.query(params, (err,data)=>{
if (typeof data.LastEvaluatedKey != "undefined") {
if (data.Count < params.Limit) { //calculating that we get all the data or not
params.ExclusiveStartKey = data.LastEvaluatedKey;
params.Limit -= data.Count; //Setting the new limit for the next query
dynamoDb.query(params, againComeHere);
} else {
//my process with the data
}
})
У меня есть несколько вопросов:
Примечание: Я новичок в DynamoDB
1. Использовал ли я тонкую логику для ограничения?Поскольку генерация результатов занимает более 2 минут, и мне нужно показать их на моем веб-сайте
2. Является ли DynamoDb правильной базой данных для меня?
Мне нужны ответы.