¿Por qué el escaneo DynamoDB con Limit y FilterExpression no devuelve los elementos que coinciden con los requisitos del filtro?

Necesito hacer un escaneo con límite y una condición en DynamoDB.

losdocs dice:

En una respuesta, DynamoDB devuelve todos los resultados coincidentes dentro del alcance del valor Límite. Por ejemplo, si emite una solicitud de consulta o exploración con un valor límite de 6 y sin una expresión de filtro, DynamoDB devuelve los primeros seis elementos de la tabla que coinciden con las condiciones clave especificadas en la solicitud (o solo los primeros seis elementos en el caso de un escaneo sin filtro). Si también proporciona un valor de FilterExpression, DynamoDB devolverá los elementos en los primeros seis que también coincidan con los requisitos del filtro (el número de resultados devueltos será menor o igual a 6).


El 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);
    }
});



Definiciones de la tabla XXXX:

Clave de partición primaria: usuario (número)Clave de ordenación primaria: Identificador (cadena)ÍNDICE:Nombre de índice: RemovedIndexTipo: GSIClave de partición: eliminada (número)Ordenar clave: -Atributos: TODOS


En el código anterior, si elimino elLimit parámetro, DynamoDB devolverá los elementos que coinciden con los requisitos del filtro. Entonces, las condiciones están bien. Pero cuando escaneo conLimit parámetro, el resultado está vacío.

La mesa XXXX tiene 5 artículos. Solo los 2 primeros tienen elRemoved atributo. Cuando escaneo sinLimit parámetro, DynamoDB devuelve los 3 elementos sinRemoved atributo.

¿Qué estoy haciendo mal?

Respuestas a la pregunta(4)

Su respuesta a la pregunta