Velo 第28回 WixDataQueryResult オブジェクトとは
コレクションにクエリーした後 find( ) 関数を実行するとプロミスが返ってきますが、その解決が WixDataQueryResult オブジェクトになります。
長い名前ですが要は問い合わせ結果のリストです。
このオブジェクトにはクエリーにマッチしたアイテムはもちろん、それ以外にもクエリーそのものに関する情報やページ処理関数が含まれています。
その形を実際に見てみましょう。
下図はコレクション(trial) です。
作成順に並んでいます。
ボタン(trial)を押してコレクションにクエリーをかけてみます。
以下のコードをご覧下さい。
破線部で囲ったところがクエリーです。
第27回の async/await を使って非同期処理をしています。
全アイテムを誕生日順に取得した後コンソールにクエリーの全結果である WixDataQueryResults オブジェクトと、そこに含まれる全アイテムをコンソールに出力させています。
まず、WixDataQueryResults オブジェクトを見てみます。
アンダースコアで始まるキーはプロパティー名です。
クエリーに limit( ) を掛けていませんのでページ処理に関するプロパティ CurrentPage、PageSize、length、totalPages等は見当たりません。
多用するitems、totalCount は見えています。
さて、items を見てみます。
7個のアイテムからなる配列になっています。
最初の2つを展開してみました。
birthday、name、color、hobby の各フィールド値が表示されています。
アイテムは指定通り誕生日順に並んでいます。
システムフィールドとして、id、owner、createDate、uodateDate もアイテムに含まれていることが分かります。
従って例えば最初のアイテムのフィールド値は次のコードで得られることが分かります。
export async function trialButton_click(event) {
//
//-----------------------------------------------------------------------
const results = await wixData.query('trial').ascending('birthday').find()
//-----------------------------------------------------------------------
const birthday = results.items[0].birthday;
const name = results.items[0].name;
const color = results.items[0].color;
const hobby = results.items[0].hobby;
const id = results.items[0]._id;
const owner = results.items[0]._owner;
}
Velo開発のご依頼はこちら