rivia-dynamodb
v2.0.8
Published
DynamoDB wrapper with helpers
Downloads
1,062
Readme
Integração com DynamoDB
Este módulo fornece uma classe com funcionalidades para realizar consultas em uma tabela do DynamoDB, permitindo buscar itens com base em uma chave de partição, filtros opcionais e um ponto de partida opcional.
Pré Requisitos
Para o correto funcionamento do módulo, duas variáveis de ambiente devem existir no ambiente de execução.
REGION
A região da AWS onde a tabela do DynamoDB foi criada.
TABLE_NAME
O nome da tabela alvo das operações.
Configurações opcionais
Você pode customizar os nomes da sua chave de partição e da chave de classificação declarando as variáveis de ambiente abaixo:
DYNAMODB_PK_FIELD_NAME
O nome do campo definido como chave de partição na tabela. Se não for definido, o valor default pk
será utilizado.
DYNAMODB_SK_FIELD_NAME
O nome do campo definido como chave de classificação na tabela. Se não for definido, o valor default sk
será utilizado.
Funções Disponíveis
insert(item)
Insere um único item na tabela do DynamoDB.
- Parâmetros:
item
: Um objeto com os valores que serão inseridos.
exists(pk, sk)
Verifica se um item existe na tabela do DynamoDB com base na chave de partição (pk
) e na chave de ordenação (sk
).
Parâmetros:
pk
: A chave de partição.sk
: A chave de ordenação.
Retorno:
true
se o item existir,false
caso contrário.
existsWithSortKey(pk, skPrefix)
Verifica se existe algum item na tabela do DynamoDB com base na chave de partição (pk
) e um prefixo para a chave de ordenação (skPrefix
).
Parâmetros:
pk
: A chave de partição.skPrefix
: O prefixo da chave de ordenação.
Retorno:
true
se algum item com o prefixo especificado existir,false
caso contrário.
existsActiveWithSortKey(pk, skPrefix)
Verifica se existe algum item com status ativo na tabela do DynamoDB com base na chave de partição (pk
) e um prefixo para a chave de ordenação (skPrefix
).
Parâmetros:
pk
: A chave de partição.skPrefix
: O prefixo da chave de ordenação.
Retorno:
true
se algum item com o prefixo especificado existir e esteja com status ativo('active' = true)
,false
caso contrário.
batchInsert(items)
Insere um lote de itens na tabela do DynamoDB.
Parâmetros:
items
: Um array de objetos representando os itens a serem inseridos.
Retorno: Um objeto contendo os resultados da operação de inserção.
find(pk, sk)
Busca um item na tabela do DynamoDB com base na chave de partição (pk
) e na chave de ordenação (sk
).
Parâmetros:
pk
: A chave de partição.sk
: A chave de ordenação.
Retorno: O item encontrado ou
null
se nenhum item for encontrado.
findByPrefix(pk, skPrefix)
Busca itens na tabela do DynamoDB com base na chave de partição (pk
) e um prefixo para a chave de ordenação (skPrefix
).
Parâmetros:
pk
: A chave de partição.skPrefix
: O prefixo da chave de ordenação.
Retorno: Um array de itens que correspondem ao prefixo especificado.
query(pk, filters = [], startFrom = null)
Realiza uma consulta na tabela do DynamoDB com base em uma chave de partição, filtros opcionais e um ponto de partida opcional.
Parâmetros:
pk
: A chave de partição para a consulta.filters
: Um array de filtros a serem aplicados.startFrom
: A última chave avaliada (opcional).
Retorno: Um objeto contendo os itens encontrados, a contagem de itens e o id da próxima página.
update(pk, sk, updates)
Atualiza um item na tabela do DynamoDB com base na chave de partição (pk
), chave de ordenação (sk
) e um objeto de atualizações (updates
).
Parâmetros:
pk
: A chave de partição.sk
: A chave de ordenação.updates
: Um objeto contendo as atualizações a serem aplicadas ao item.
Retorno: O resultado da operação de atualização.
getAll(pk)
Recupera todos os itens da tabela do DynamoDB.
Parâmetros:
pk
: A chave de partição para a consulta.
Retorno: Um array contendo todos os itens da tabela.
remove(pk, sk)
Remove um item da tabela do DynamoDB
Parâmetros:
pk
: A chave de partição.sk
: A chave de ordenação.
Retorno: O resultado da operação de remoção.
Exemplos de Uso
Uso padrão
const Dynamo = require('rivia-dynamodb');
const dynamoFunctions = new Dynamo();
// Verificar se um item existe
dynamoFunctions.exists('user:1', 'metadata').then(exists => console.log(exists));
// Inserir um único item
dynamoFunctions.insert({ pk: 'user:2', sk: 'metadata', name: 'John Doe' }).then(result => console.log(result));
// Inserir um lote de itens
dynamoFunctions.batchInsert([{ pk: 'user:2', sk: 'metadata', name: 'John Doe' }]).then(result => console.log(result));
// Buscar um item específico
dynamoFunctions.find('user:1', 'metadata').then(item => console.log(item));
// Atualizar um item
dynamoFunctions.update('user:1', 'metadata', { age: 30 }).then(result => console.log(result));
// Obter todos os itens
dynamoFunctions.getAll('user:all').then(result => console.log(result));
Configuração personalizada
const Dynamo = require('rivia-dynamodb');
const config = {
pk: 'partition-key-field-name',
sk: 'sort-key-field-name',
table: 'table-name',
region: 'us-east-2'
};
const dynamoFunctions = new Dynamo();
dynamoFunctions.set(config);
// Verificar se um item existe
dynamoFunctions.exists('user:1', 'metadata').then(exists => console.log(exists));
// Inserir um único item
dynamoFunctions.insert({ pk: 'user:2', sk: 'metadata', name: 'John Doe' }).then(result => console.log(result));
// Inserir um lote de itens
dynamoFunctions.batchInsert([{ pk: 'user:2', sk: 'metadata', name: 'John Doe' }]).then(result => console.log(result));
// Buscar um item específico
dynamoFunctions.find('user:1', 'metadata').then(item => console.log(item));
// Atualizar um item
dynamoFunctions.update('user:1', 'metadata', { age: 30 }).then(result => console.log(result));
// Obter todos os itens
dynamoFunctions.getAll('user:all').then(result => console.log(result));