Todos los productos
Search
Centro de documentos

Tablestore:Lectura de datos en un rango

Última actualización: Sep 03, 2026

Utilice el método getRange del SDK de Node.js para Tablestore con el fin de leer datos dentro de un rango de clave primaria especificado.

Requisitos previos

Initialize a Tablestore client

Método

getRange: function getRange(params, callback)

Parameters

Nombre

Tipo

Descripción

tableName (Obligatorio)

string

El nombre de la tabla de datos.

inclusiveStartPrimaryKey (Obligatorio)

Array

La clave primaria inicial, que incluye el nombre y el valor de la columna de clave primaria.

  • Los datos devueltos incluyen la clave primaria inicial.

  • La cantidad y los tipos de claves primarias deben coincidir con los de la tabla de datos.

  • Al leer datos en orden ascendente, la clave primaria inicial debe ser menor que la clave primaria final.

  • Al leer datos en orden descendente, la clave primaria inicial debe ser mayor que la clave primaria final.

  • TableStore.INF_MIN representa infinito negativo y TableStore.INF_MAX representa infinito positivo.

exclusiveEndPrimaryKey (Obligatorio)

Array

La clave primaria final, que incluye el nombre y el valor de la columna de clave primaria.

  • Los datos devueltos no incluyen la clave primaria final.

  • La cantidad y los tipos de claves primarias deben coincidir con los de la tabla de datos.

  • TableStore.INF_MIN representa infinito negativo y TableStore.INF_MAX representa infinito positivo.

direction (Opcional)

string

La dirección de lectura.

  • TableStore.Direction.FORWARD (predeterminado): Lee los datos en orden ascendente.

  • TableStore.Direction.BACKWARD: Lee los datos en orden descendente.

maxVersions (Opcional)

number

El número máximo de versiones a devolver. El valor predeterminado es 1.

  • Si hay más versiones que cumplen la condición de filtro que el máximo especificado, los resultados se devuelven en orden descendente según la marca de tiempo.

timeRange (Opcional)

object

El rango de versiones de los datos.

  • Las columnas de atributos en una tabla de Tablestore pueden tener varias versiones. Si especifica un rango de versiones, solo se devuelven los datos dentro de ese rango.

limit (Opcional)

number

El número máximo de filas a devolver en una sola solicitud. Debe ser mayor que 0. Si las filas coincidentes superan este valor, la respuesta incluye el número especificado de filas y la clave primaria inicial para la siguiente consulta.

columnsToGet (Opcional)

Array

Las columnas a leer. Pueden ser columnas de clave primaria o columnas de atributos.

  • Si no se especifica, se devuelve la fila completa.

  • Si la fila recuperada no contiene ninguna de las columnas especificadas, se devuelve null.

columnFilter (Opcional)

TableStore.ColumnCondition

El filtro a aplicar. Para obtener más información, consulte Filters.

  • Si establece tanto columnsToGet como columnFilter, el sistema selecciona primero las filas según columnsToGet y luego filtra los datos según columnFilter.

transactionId (Opcional)

string

El ID que identifica de forma única una transacción local. Para obtener más información, consulte Local transactions.

Ejemplos

A continuación se muestra un ejemplo que lee datos de la tabla test_table donde el valor de la clave primaria es mayor que row1.

var params = {
    tableName: 'test_table',
    // Set the start primary key for the query.
    inclusiveStartPrimaryKey: [{ 'id': 'row1' }],
    // Set the end primary key for the query. The end primary key is not included in the result.
    exclusiveEndPrimaryKey: [{ 'id': TableStore.INF_MAX }]
};

// Call the getRange method to query data.
client.getRange(params, function (err, data) {
    if (err) {
        console.log('Get range failed with error: ', err);
        return;
    }

    console.log('* RequestId: ', data.RequestId);
    console.log('* Read CU Cost: ', data.consumed.capacityUnit.read);
    console.log('* Write CU Cost: ', data.consumed.capacityUnit.write);
    console.log('* Rows Data: ');
    data.rows.forEach(function (row) {
         console.log(row);
    });
});

Un escaneo de rango único devuelve un máximo de 5,000 filas o 4 MB de datos. Si se supera este límite, la respuesta incluye la clave primaria inicial para la siguiente lectura. Utilice el siguiente código para realizar consultas iterativas.

async function getRangeSample() {
    try {
        while (true) {
            // Call the getRange method to query data.
            const data = await client.getRange(params);

            // Process the returned result.
            console.log('* RequestId: ', data.RequestId);
            console.log('* Read CU Cost: ', data.consumed.capacityUnit.read);
            console.log('* Write CU Cost: ', data.consumed.capacityUnit.write);
            console.log('* Rows Data: ');
            data.rows.forEach(function (row) {
                console.log(row);
            });

            // Set the start primary key for the next read.
            if (data.nextStartPrimaryKey) {
                params.inclusiveStartPrimaryKey = data.nextStartPrimaryKey.map(item => {
                    return {
                        [item.name]: item.value
                    };
                });
            } else {
                break;
            }
        }
    } catch (err) {
        console.log('Range get failed with error: ', err);
    }
}

getRangeSample();

También puede configurar los siguientes ajustes al consultar datos.

  • Establezca la dirección de lectura de datos.

    var params = {
        tableName: 'test_table',
        // Set the start primary key for the query. When you read data in reverse order, the start primary key must be greater than the end primary key.
        inclusiveStartPrimaryKey: [{ 'id': TableStore.INF_MAX }],
        // Set the end primary key for the query. The end primary key is not included in the result.
        exclusiveEndPrimaryKey: [{ 'id': 'row1' }],
        // Set the read direction to reverse.
        direction: TableStore.Direction.BACKWARD
    };
  • Establezca un rango de versiones. Solo se devuelven los datos dentro del rango especificado.

    // Set the version range for the query to the last 24 hours.
    params.timeRange = {
        startTime: (Date.now() - 86400 * 1000).toString(),
        endTime: Date.now().toString()
    }
  • Especifique las columnas de atributos a leer.

    params.columnsToGet = ['col2']
  • Establezca el número máximo de filas a devolver en una sola solicitud.

    params.limit = 10

Referencias

Batch Read Data