es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo paginar los resultados de DynamoDB usando el SDK de AWS sendCommand

¿Cómo hago la paginación al escanear dynamodb con el comando de envío? Buscando en línea, los ejemplos sólidos parecen estar utilizando las versiones anteriores de la biblioteca sdk.

Muchas gracias,

A continuación se muestra mi fragmento de código

Los resultados son los esperados, no todas las filas en dynamodb.

  const scanCommand = new ScanCommand({
    TableName: 'Members',
  });

  const members = await dynamoClient.send(scanCommand);

  for (const member of members.Items) {
      ...
  }
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para paginar al escanear DynamoDB con el comando “send”, puedes establecer el parámetro “ExclusiveStartKey” con la última clave evaluada de la solicitud anterior. Esto iniciará el escaneo desde donde se detuvo la solicitud anterior. Aquí tienes un fragmento de código actualizado con soporte para paginación:

    const pageSize = 10; // establece el número de elementos por página
    let lastEvaluatedKey = null; // empieza con null para obtener la primera página
    
    do {
      const scanCommand = new ScanCommand({
        TableName: 'Members',
        Limit: pageSize,
        ExclusiveStartKey: lastEvaluatedKey // establece la última clave evaluada
      });
    
      const { Items, LastEvaluatedKey } = await dynamoClient.send(scanCommand);
    
      for (const member of Items) {
        // procesa cada miembro
      }
    
      lastEvaluatedKey = LastEvaluatedKey; // actualiza la última clave evaluada para obtener la siguiente página
    } while (lastEvaluatedKey);
    

    Este fragmento de código obtiene una página de hasta 10 elementos por solicitud y continúa escaneando hasta que no haya más elementos para obtener. El valor “LastEvaluatedKey” devuelto en la respuesta se utiliza como parámetro “ExclusiveStartKey” para la siguiente solicitud. El bucle “do-while” se utiliza para obtener la primera página y luego continuar obteniendo páginas hasta que no queden más elementos.

Comments are closed.