Por que a verificação do DynamoDB com Limit e FilterExpression não retorna os itens que correspondem aos requisitos de filtro?

Preciso fazer uma verificação com limite e uma condição no DynamoDB.

odocs diz:

Em uma resposta, o DynamoDB retorna todos os resultados correspondentes no escopo do valor Limit. Por exemplo, se você emitir uma solicitação de consulta ou verificação com um valor limite de 6 e sem uma expressão de filtro, o DynamoDB retornará os seis primeiros itens da tabela que correspondem às principais condições especificadas na solicitação (ou apenas os seis primeiros itens em o caso de uma digitalização sem filtro). Se você também fornecer um valor de FilterExpression, o DynamoDB retornará os itens nos seis primeiros que também correspondem aos requisitos de filtro (o número de resultados retornados será menor ou igual a 6).


O código (NODEJS):

var params = {
    ExpressionAttributeNames: {"#user": "User"},
    ExpressionAttributeValues: {":user": parseInt(user.id)},
    FilterExpression: "#user = :user and attribute_not_exists(Removed)",
    Limit: 2,
    TableName: "XXXX"
};

DynamoDB.scan(params, function(err, data) {
    if (err) {
        dataToSend.message = "Unable to query. Error: " + err.message;
    } else if (data.Items.length == 0) {
        dataToSend.message = "No results were found.";
    } else {
        dataToSend.data = data.Items;
        console.log(dataToSend);
    }
});



Definições da tabela XXXX:

Chave de partição primária: Usuário (Número)Chave de classificação primária: Identificador (String)ÍNDICE:Nome do índice: RemovedIndexTipo: GSIChave da partição: Removida (Número)Chave de classificação: -Atributos: ALL


No código acima, se eu remover oLimit parâmetro, o DynamoDB retornará os itens que correspondem aos requisitos de filtro. Então, as condições estão boas. Mas quando digitalizo comLimit parâmetro, o resultado está vazio.

A tabela XXXX possui 5 itens. Apenas os dois primeiros têm oRemoved atributo. Quando digitalizo semLimit parâmetro, o DynamoDB retorna os 3 itens semRemoved atributo.

O que estou fazendo de errado?

questionAnswers(4)

yourAnswerToTheQuestion