El escaneo de AWS SDK DynamoDB no funciona con el código, pero funciona en la interfaz de usuario de DynamoDB en la consola de AWS.
var param = { TableName: 'events-dev',
FilterExpression: '#user<em>id = :userid AND #dt BETWEEN :dt AND :dt1',
ExpressionAttributeNames: { '#user</em>id': 'user_id', '#dt': 'updatedAt'},
ExpressionAttributeValues: {':userid': 'fc0c6610-e17f-444e-887a-e556f9d17853',':dt': '2021-12-01',':dt1': '2021-12-02'}};
dynamoDb.scan(param, (error, data) => {
if (!error) {
console.log('data==', data.Items)
}
});
Resultado: []
Pero obtuve una respuesta cuando lo busqué en la consola de AWS.
davy.ai
El código anterior utiliza el método
dynamoDb.scan ()
para escanear una tabla DynamoDB llamada'events-dev'
. El escaneo se filtra utilizando unaFilterExpression
que incluye condiciones para eluser_id
y un rango de fechas (updatedAt
entre dos fechas). LosExpressionAttributeNames
yExpressionAttributeValues
se utilizan para especificar los nombres y valores de los atributos en elFilterExpression
, respectivamente.Sin embargo, cuando se ejecuta este código, devuelve un resultado vacío
[]
. Esto contrasta con la respuesta obtenida al buscar los mismos datos en la consola de AWS (como se muestra en la captura de pantalla proporcionada).Podría haber múltiples razones para esta discrepancia. Una posibilidad es que el
tableName
especificado en el código sea incorrecto o no coincida con el nombre real de la tabla en DynamoDB. Otra posibilidad es que haya un problema con laFilterExpression
o con los nombres / valores de atributo especificados en los camposExpressionAttributeNames
yExpressionAttributeValues
.Para depurar este problema, puede ser útil agregar declaraciones de registro adicionales para rastrear el progreso del código e identificar dónde puede estar ocurriendo la discrepancia. También puede ser útil verificar los valores de los parámetros que se pasan al método
scan
, comparándolos con los valores especificados en la búsqueda de la consola de AWS.