機能的にはまだまだ少ないですが、Deno/TypeScript用のSDKを開発中です。TypeScriptで作られており、VueやReact、Angularとの組み合わせでも利用できます。
NCMBMania/ncmb_deno: deno用のSDKです
今回はクエリの使い方です。基本的な絞り込み用オペランドはDeno/TypeScript用SDKで位置情報、クエリオペランドを追加しましたで紹介済みです。この記事ではその後追加したオペランドを紹介します。
インストール方法
インストールは普段使っているnpmやYarnで可能です。
npm install ncmb_ts -S
初期化
初期化は次のように行います。
// Node.jsの場合 import { NCMB, NCMBUser } from 'ncmb_ts' // denoの場合 import { NCMB, NCMBUser } from 'https://raw.githubusercontent.com/NCMBMania/ncmb_deno/master/ncmb.ts' const ncmb = new NCMB('YOUR_APPLICATION_KEY', 'YOUR_CLIENT_KEY')
カウント
クエリの検索結果数を取得するのは fetchWithCount
になります。ここで返ってくるカウントは検索結果の対象件数であり、取得数とは異なります。例えば1000件データが返ってきたとしても、カウントは2000という場合があります。これは次の結果があるということです。
const query = new NCMBQuery('QueryTest') const {count, results} = await query .limit(6) .fetchWithCount() console.log(results.length) // => 6 console.log(count) // => 10
検索結果件数の制限
検索結果を制限する場合には limit を使います。
const query = new NCMBQuery('QueryTest') const results = await query .limit(6) .fetchAll()
並び替え
並び替えは order を使います。
const query = new NCMBQuery('QueryTest') const results = await query .order('createDate') .fetchAll()
検索結果のスキップ
ページネーションで使うのが skip になります。
const query = new NCMBQuery('QueryTest') const results = await query .skip(10) .fetchAll()
検索結果にポインターを含める
ポインターで示されているクラスも結果に含める場合は include を使います。
const query = new NCMBQuery('QueryTest') const results = await query .include('user') .fetchAll()
includeを使った場合、そのフィールドはNCMBObjectとして取得されます。
results[0] .get('user') .get('name')
OR検索
複数のクエリをORでつないで検索する場合には or を使います。
// クエリ1 const query1 = new NCMBQuery('QueryTest'); query1.lessThan('date', new Date(2020, 8, 16, 9, 0, 0)) // クエリ2 const query2 = new NCMBQuery('QueryTest'); query2.lessThanOrEqualTo('number', 200) const query = new NCMBQuery('QueryTest'); const ary = await query .or([query1, query2]) .fetchAll()
まとめ
クエリ条件を細かく指定することで、より絞り込んだデータを取得できます。それはネットワーク速度の向上にもつながるので、Vue/React/Angularアプリの高速化にもつながるでしょう。ぜひ使いこなしてください。