All Products
Search
Document Center

Tablestore:Filter

Last Updated:May 12, 2026

Tablestore mendukung penyaringan sisi server untuk hanya mengembalikan data yang memenuhi kondisi yang Anda tentukan. Topik ini menjelaskan cara menggunakan filter dengan SDK Node.js.

Prasyarat

Inisialisasi Client Tablestore

Jenis Filter

Tablestore menyediakan dua jenis filter:

  • SingleColumnCondition: Menyaring data berdasarkan nilai satu kolom atribut.

  • CompositeCondition: Menggabungkan beberapa kondisi filter.

SingleColumnCondition

TableStore.SingleColumnCondition

Parameter

Parameter

Tipe

Deskripsi

comparator (wajib)

TableStore.ComparatorType

Operator relasional. Nilai yang valid: EQUAL, NOT_EQUAL, GREATER_THAN, GREATER_EQUAL, LESS_THAN, dan LESS_EQUAL.

columnName (wajib)

string

Nama kolom atribut yang akan disaring.

columnValue (wajib)

STRING, INTEGER, BINARY, DOUBLE, BOOLEAN

Nilai yang akan dibandingkan.

passIfMissing (opsional)

boolean

Jika true, baris dikembalikan meskipun tidak berisi kolom atribut yang ditentukan. Nilai default adalah true.

latestVersionOnly (opsional)

boolean

Jika true, hanya versi data terbaru dari kolom atribut yang dievaluasi. Nilai default adalah true.

Contoh

Contoh berikut melakukan kueri rentang untuk nilai primary key dalam rentang [row1, row3), lalu menerapkan filter untuk hanya mengembalikan baris yang nilai kolom atribut col1-nya adalah val1.

var params = {
    tableName: 'test_table',
    // Tetapkan primary key awal untuk kueri.
    inclusiveStartPrimaryKey: [{ 'id': 'row1' }],
    // Tetapkan primary key akhir untuk kueri (eksklusif).
    exclusiveEndPrimaryKey: [{ 'id': 'row3' }]
};
// Buat filter dengan kondisi: col1 == "val1".
var singleColumnCondition = new TableStore.SingleColumnCondition('col1', 'val1', TableStore.ComparatorType.EQUAL);
params.columnFilter = singleColumnCondition;

// Panggil metode getRange untuk mengkueri data.
client.getRange(params, function (err, data) {
    if (err) {
        console.log('Kueri rentang gagal dengan error: ', err);
        return;
    }

    // Proses respons.
    console.log('* RequestId: ', data.RequestId);
    console.log('* Biaya CU Baca: ', data.consumed.capacityUnit.read);
    console.log('* Biaya CU Tulis: ', data.consumed.capacityUnit.write);
    console.log('* Data Baris: ');
    data.rows.forEach(function (row) {
         console.log(row);
    });
});
  • Untuk mengecualikan baris yang tidak berisi kolom atribut yang ditentukan, atur passIfMissing ke false.

    singleColumnCondition.passIfMissing = false;
  • Untuk mengevaluasi semua versi data, atur latestVersionOnly ke false. Jika terdapat versi data yang memenuhi kondisi, baris tersebut akan dikembalikan.

    singleColumnCondition.latestVersionOnly = false

CompositeCondition

Anda dapat menggabungkan hingga 32 kondisi.

TableStore.CompositeCondition

Parameter

Parameter

Jenis

Deskripsi

combinator (wajib)

TableStore.LogicalOperator

Operator logika. Nilai yang valid: NOT, AND, dan OR.

sub_conditions (wajib)

Array

Array berisi kondisi yang akan digabungkan. Array dapat berisi objek SingleColumnCondition dan CompositeCondition.

Contoh

Contoh berikut melakukan kueri rentang untuk baris dengan nilai primary key dalam rentang [row1, row3), lalu menerapkan filter komposit.

var params = {
    tableName: 'test_table',
    // Tetapkan primary key awal.
    inclusiveStartPrimaryKey: [{ 'id': 'row1' }],
    // Tetapkan primary key akhir (eksklusif).
    exclusiveEndPrimaryKey: [{ 'id': 'row3' }]
};

// Buat kondisi kolom tunggal pertama: col1 == "val1".
var singleColumnCondition1 = new TableStore.SingleColumnCondition('col1', 'val1', TableStore.ComparatorType.EQUAL);
// Buat kondisi kolom tunggal kedua: col2 == "val2".
var singleColumnCondition2 = new TableStore.SingleColumnCondition('col2', 'val2', TableStore.ComparatorType.EQUAL);
// Buat kondisi komposit pertama: col1 == "val1" OR col2 == "val2".
var compositeCondition1 = new TableStore.CompositeCondition(TableStore.LogicalOperator.OR);
compositeCondition1.addSubCondition(singleColumnCondition1);
compositeCondition1.addSubCondition(singleColumnCondition2);
// Buat kondisi kolom tunggal ketiga: col3 == "val3".
var singleColumnCondition3 = new TableStore.SingleColumnCondition('col3', 'val3', TableStore.ComparatorType.EQUAL);
// Buat kondisi komposit kedua: (col1 == "val1" OR col2 == "val2") AND col3 == "val3".
var compositeCondition2 = new TableStore.CompositeCondition(TableStore.LogicalOperator.AND);
compositeCondition2.addSubCondition(compositeCondition1);
compositeCondition2.addSubCondition(singleColumnCondition3);
// Tambahkan filter ke kueri.
params.columnFilter = compositeCondition2

// Panggil metode getRange untuk mengkueri data.
client.getRange(params, function (err, data) {
    if (err) {
        console.log('Kueri rentang gagal dengan error: ', err);
        return;
    }

    // Proses respons.
    console.log('* RequestId: ', data.RequestId);
    console.log('* Biaya CU Baca: ', data.consumed.capacityUnit.read);
    console.log('* Biaya CU Tulis: ', data.consumed.capacityUnit.write);
    console.log('* Data Baris: ');
    data.rows.forEach(function (row) {
         console.log(row);
    });
});

Topik Terkait