お知らせ:

当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

NoSQLテーブルのクエリ

Catalystでは、NoSQLテーブルをクエリし、テーブルのプライマリキーを使用してアイテムを識別することでデータを取得できます。たとえば、パーティションキーのみ、またはパーティションキーとソートキーの組み合わせを使用してアイテムを取得できます。

Note: Catalystでは、1回のSDK操作でNoSQLテーブルからページネーション付きで最大100件のアイテムを一括取得できます。SDKレスポンスで受信したstart_keyトークンを使用して、ページネーションのロジックを構築する必要があります。

属性、必要な値、および使用するサポートされる演算子を指定して、アイテムを識別するキー条件を定義できます。サポートされる演算子は以下のとおりです。

Operators Notation
CONTAINS contains
NOT_CONTAINS not_contains
BEGINS_WITH begins_with
ENDS_WITH ends_with
IN in
NOT_IN not_in
BETWEEN between
NOT_BETWEEN not_between
EQUALS equals
NOT_EQUALS not_equals
GREATER_THAN greater_than
LESS_THAN less_than
GREATER_THAN_OR_EQUALS greater_equal
LESSER_THAN_OR_EQUALS less_equal
AND AND
OR OR

以下の例では、パーティションキーfruitTypeを使用してアイテムを識別し、条件値を「Citrus」として指定して、queryTable()メソッドでクエリを実行しています。

Catalyst NoSQLでは、consistent_readを使用して読み取り操作をマスタークラスターまたはスレーブクラスターのどちらで実行するかを指定したり、返される行数を制限したり、昇順のソート順序を指定するなど、クエリの他の要素も定義できます。

Note: マスター・スレーブレプリケーションでは、マスターにはデータベースのすべてのデータが含まれ、スレーブにはマスターからのコピーが含まれます。スレーブから読み取り操作を実行すると、更新されたデータの反映にわずかな遅延が生じるというトレードオフがありますが、全体的なコストを削減できます。

zcatalyst-sdk-nodeパッケージのno-sqlライブラリは、NoSQLアイテムの定義に必要です。

copy
const { NoSQLMarshall, NoSQLEnum } = require('zcatalyst-sdk-node/lib/no-sql');
const { NoSQLOperator } = NoSQLEnum;
// パーティションキーfruitTypeの値「citrus」で識別されるアイテムを取得するためにNoSQLテーブルをクエリする
const queriedItem = await table.queryTable({
// アイテムをクエリするためのキー条件を定義する
key_condition: {
// テーブルのパーティションキー属性名を指定する
attribute: 'fruitType',
// 使用するサポートされた演算子を定義する。BETWEEN、GREATERTHAN、LESSERTHAN、GREATERTHANOREQUALTO、LESSERTHANOREQUALTOも使用可能
operator: NoSQLOperator.EQUALS,
// 比較する値を指定する
value: NoSQLMarshall.makeString('Citrus')
},
// consistent_readをtrueに設定してマスターからクエリする。falseに設定するとスレーブからクエリされる。
consistent_read: true,
// 値を指定して返される行数を制限する
limit: 10,
// forward_scanをtrueに設定して結果を昇順にソートする。それ以外の場合は降順にソートされる。
forward_scan: true
});

最終更新日 2026-03-24 17:38:39 +0530 IST

このページについて

関連リンク

NoSQL Table Keys Query Table