Tous les produits
Search
Centre de documentation

Tablestore:Lire des données dans une plage

Dernière mise à jour :Aug 19, 2026

Utilisez la méthode getRange du SDK Tablestore pour Node.js afin de lire les données comprises dans une plage de clés primaires spécifiée.

Prérequis

Initialiser un client Tablestore

Méthode

getRange: function getRange(params, callback)

Paramètres

Nom

Type

Description

tableName (obligatoire)

string

Nom de la table de données.

inclusiveStartPrimaryKey (obligatoire)

Array

Clé primaire de début, incluant le nom et la valeur de la colonne de clé primaire.

  • Les données renvoyées incluent la clé primaire de début.

  • Le nombre et les types de clés primaires doivent correspondre à ceux de la table de données.

  • Lors d'une lecture dans l'ordre croissant, la clé primaire de début doit être inférieure à la clé primaire de fin.

  • Lors d'une lecture dans l'ordre décroissant, la clé primaire de début doit être supérieure à la clé primaire de fin.

  • TableStore.INF_MIN représente l'infini négatif et TableStore.INF_MAX représente l'infini positif.

exclusiveEndPrimaryKey (obligatoire)

Array

Clé primaire de fin, incluant le nom et la valeur de la colonne de clé primaire.

  • Les données renvoyées n'incluent pas la clé primaire de fin.

  • Le nombre et les types de clés primaires doivent correspondre à ceux de la table de données.

  • TableStore.INF_MIN représente l'infini négatif et TableStore.INF_MAX représente l'infini positif.

direction (facultatif)

string

Sens de lecture.

  • TableStore.Direction.FORWARD (par défaut) : lit les données dans l'ordre croissant.

  • TableStore.Direction.BACKWARD : lit les données dans l'ordre décroissant.

maxVersions (facultatif)

number

Nombre maximal de versions à renvoyer. La valeur par défaut est 1.

  • Si le nombre de versions satisfaisant la condition de filtre dépasse le maximum spécifié, les résultats sont renvoyés par ordre décroissant d'horodatage.

timeRange (facultatif)

object

Plage de versions des données.

  • Les colonnes d'attribut d'une table Tablestore peuvent comporter plusieurs versions. Si vous spécifiez une plage de versions, seules les données comprises dans cette plage sont renvoyées.

limit (facultatif)

number

Nombre maximal de lignes à renvoyer en une seule requête. Doit être supérieur à 0. Si le nombre de lignes correspondantes dépasse cette valeur, la réponse inclut le nombre spécifié de lignes ainsi que la clé primaire de début pour la requête suivante.

columnsToGet (facultatif)

Array

Colonnes à lire. Il peut s'agir de colonnes de clé primaire ou de colonnes d'attribut.

  • Si ce paramètre n'est pas spécifié, la ligne entière est renvoyée.

  • Si la ligne récupérée ne contient aucune des colonnes spécifiées, la valeur null est renvoyée.

columnFilter (facultatif)

TableStore.ColumnCondition

Filtre à appliquer. Pour plus d'informations, consultez la rubrique Filtres.

  • Si vous définissez à la fois columnsToGet et columnFilter, le système sélectionne d'abord les lignes en fonction de columnsToGet, puis filtre les données selon columnFilter.

transactionId (facultatif)

string

ID identifiant de manière unique une transaction locale. Pour plus d'informations, consultez la rubrique Transactions locales.

Exemples

L'exemple suivant lit les données de la table test_table dont la valeur de clé primaire est supérieure à 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);
    });
});

Une analyse de plage unique renvoie au maximum 5 000 lignes ou 4 Mo de données. Si cette limite est dépassée, la réponse inclut la clé primaire de début pour la lecture suivante. Utilisez le code ci-dessous pour effectuer des requêtes itératives.

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();

Vous pouvez également configurer les paramètres suivants lors de l'interrogation des données.

  • Définissez le sens de lecture des données.

    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
    };
  • Définissez une plage de versions. Seules les données comprises dans la plage spécifiée sont renvoyées.

    // Set the version range for the query to the last 24 hours.
    params.timeRange = {
        startTime: (Date.now() - 86400 * 1000).toString(),
        endTime: Date.now().toString()
    }
  • Spécifiez les colonnes d'attribut à lire.

    params.columnsToGet = ['col2']
  • Définissez le nombre maximal de lignes à renvoyer en une seule requête.

    params.limit = 10

Références

Lecture de données par lot