全部产品
Search
文档中心

Tablestore:Gunakan filter

更新时间:Jul 06, 2025

Filter Tablestore menyaring hasil kueri di server sebelum mengembalikan hasil yang telah disaring. Hanya baris yang memenuhi kondisi filter yang dikembalikan.

Prasyarat

Pengenalan

Saat Anda memanggil operasi GetRow, BatchGetRow, atau GetRange untuk menanyakan data, Anda dapat menggunakan filter untuk hanya mengembalikan baris yang memenuhi kondisi filter.

Filter mencakup SingleColumnValueFilter dan CompositeColumnValueFilter.

  • SingleColumnValueFilter: menentukan apakah akan mengembalikan baris berdasarkan nilai kolom referensi.

  • CompositeColumnValueFilter: menentukan apakah akan mengembalikan baris berdasarkan kombinasi kondisi filter dari beberapa kolom referensi.

Catatan

Untuk informasi lebih lanjut tentang filter, lihat Konfigurasi sebuah filter.

Catatan penggunaan

  • Kondisi filter mendukung operator relasional =, !=, >, >=, <, dan <= serta operator logika NOT, AND, dan OR. Kondisi filter dapat mencakup hingga 10 subkondisi.

  • Kolom referensi yang digunakan oleh filter harus termasuk dalam hasil kueri. Jika kolom tertentu yang dibaca tidak mencakup kolom referensi, filter tidak dapat menanyakan nilai kolom referensi tersebut.

  • Saat menggunakan operasi GetRange, hingga 5.000 baris atau 4 MB data dapat dipindai sekaligus.

    Jika tidak ada data yang sesuai dengan kondisi filter dalam rentang pemindaian, baris yang dikembalikan akan kosong. Namun, NextStartPrimaryKey mungkin tidak kosong. Jika NextStartPrimaryKey tidak kosong, gunakan nilai parameter tersebut untuk melanjutkan pemindaian sampai nilai pengembalian NextStartPrimaryKey kosong.

Parameter

Parameter

Deskripsi

columnName

Nama kolom referensi yang digunakan oleh filter.

columnValue

Nilai kolom referensi yang digunakan oleh filter.

ComparatorType

Operator relasional yang digunakan oleh filter. Untuk informasi lebih lanjut tentang operator relasional, lihat ComparatorType.

Operator relasional berikut didukung: EQUAL (=), NOT_EQUAL (!=), GREATER_THAN (>), GREATER_EQUAL (>=), LESS_THAN (<), dan LESS_EQUAL (<=).

LogicOperator

Operator logika yang digunakan oleh filter. Untuk informasi tentang operator logika, lihat LogicalOperator.

Operator logika berikut didukung: NOT, AND, dan OR.

passIfMissing

Menentukan apakah akan mengembalikan baris jika kolom referensi tidak ada di baris tersebut. Tipe data dari nilai parameter adalah Boolean. Nilai valid:

  • true (default): Jika kolom referensi tidak ada di baris, baris tersebut dikembalikan.

  • false: Jika kolom referensi tidak ada di baris, baris tersebut tidak dikembalikan.

latestVersionOnly

Menentukan apakah hanya menggunakan versi terbaru data dalam kolom referensi untuk perbandingan ketika kolom referensi berisi beberapa versi data. Tipe: Boolean. Nilai valid:

  • true: Jika kolom referensi berisi beberapa versi data, hanya versi terbaru data yang digunakan untuk perbandingan. Ini adalah nilai default.

  • false: Jika kolom referensi berisi beberapa versi data, semua versi data digunakan untuk perbandingan. Jika satu versi data dalam kolom referensi memenuhi kondisi filter, baris tersebut dikembalikan.

Contoh

Gunakan SingleColumnValueFilter untuk menyaring data

Berikut ini adalah contoh kode yang menunjukkan cara mengembalikan baris data yang datanya adalah Tablestore di kolom col1 dalam tabel data.

function getRowWithCondition() {
  // Tentukan bahwa baris dikembalikan ketika nilai kolom col1 adalah Tablestore. Saat passIfMissing diatur ke true, baris dikembalikan jika kolom ini tidak ada. Saat passIfMissing diatur ke false, baris tidak dikembalikan jika kolom ini tidak ada.
  var condition = new TableStore.SingleColumnCondition('col1', 'Tablestore', TableStore.ComparatorType.EQUAL,true);

  params.columnFilter = condition;
  client.getRow(params, function (err, data) {
    if (err) {
      console.log('error:', err);
      return;
    }
    console.log('success:', data);
  });
}

Gunakan CompositeColumnValueFilter untuk menyaring data

Berikut ini adalah contoh kode yang menunjukkan cara mengembalikan baris data yang datanya adalah Tablestore di kolom col1 dan 123456789 di kolom col5 dalam tabel data.

function getRowWithCompositeCondition() {
  // Tentukan bahwa baris dikembalikan ketika nilai kolom col1 adalah Tablestore dan nilai kolom col5 adalah 123456789.
  var condition = new TableStore.CompositeCondition(TableStore.LogicalOperator.AND);
  condition.addSubCondition(new TableStore.SingleColumnCondition('col1', 'Tablestore', TableStore.ComparatorType.EQUAL));
  condition.addSubCondition(new TableStore.SingleColumnCondition('col5', Long.fromNumber(123456789), TableStore.ComparatorType.EQUAL));

  params.columnFilter = condition;
  client.getRow(params, function (err, data) {
    if (err) {
      console.log('error:', err);
      return;
    }
    console.log('success:', data);
  });
}

Referensi

  • Jika aplikasi perlu menggunakan kolom atribut yang berbeda sebagai kondisi kueri untuk menanyakan data, Anda dapat menentukan kolom atribut tersebut sebagai kolom kunci utama indeks sekunder. Dengan cara ini, Anda dapat menggunakan indeks sekunder untuk menanyakan data berdasarkan kolom atribut, mempercepat kueri data. Untuk informasi lebih lanjut, lihat Indeks Sekunder.

  • Jika bisnis Anda memerlukan kueri multi-dimensi dan analisis data, Anda dapat membuat indeks pencarian dan menentukan kolom atribut yang diperlukan sebagai bidang indeks pencarian. Kemudian, Anda dapat menanyakan dan menganalisis data menggunakan indeks pencarian. Misalnya, Anda dapat menggunakan indeks pencarian untuk melakukan kueri berdasarkan kolom non-kunci utama, kueri Boolean, dan kueri fuzzy. Anda juga dapat menggunakan indeks pencarian untuk mendapatkan nilai maksimum dan minimum, mengumpulkan statistik jumlah baris, dan mengelompokkan hasil kueri. Untuk informasi lebih lanjut, lihat Indeks Pencarian.

  • Anda dapat menggunakan fitur kueri SQL untuk menanyakan dan menganalisis data dalam tabel. Untuk informasi lebih lanjut, lihat Kueri Data.