見出し画像

Velo 第28回 WixDataQueryResult オブジェクトとは 

コレクションにクエリーした後 find( ) 関数を実行するとプロミスが返ってきますが、その解決が WixDataQueryResult オブジェクトになります。
長い名前ですが要は問い合わせ結果のリストです。
このオブジェクトにはクエリーにマッチしたアイテムはもちろん、それ以外にもクエリーそのものに関する情報やページ処理関数が含まれています。
その形を実際に見てみましょう。

下図はコレクション(trial) です。
作成順に並んでいます。

trial コレクション

ボタン(trial)を押してコレクションにクエリーをかけてみます。
以下のコードをご覧下さい。

クエリーコード

破線部で囲ったところがクエリーです。
第27回の async/await を使って非同期処理をしています。
全アイテムを誕生日順に取得した後コンソールにクエリーの全結果である WixDataQueryResults オブジェクトと、そこに含まれる全アイテムをコンソールに出力させています。

まず、WixDataQueryResults オブジェクトを見てみます。
アンダースコアで始まるキーはプロパティー名です。

WixDataQueryResults オブジェクト

クエリーに limit( ) を掛けていませんのでページ処理に関するプロパティ CurrentPage、PageSize、length、totalPages等は見当たりません。
多用するitems、totalCount は見えています。
さて、items を見てみます。

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開発のご依頼はこちら





この記事が気に入ったらサポートをしてみませんか?