ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

データストアのデータを全件取るユーティリティ関数の紹介

f:id:mbaasdevrel:20171212211252p:plain

データストアでは一度に1,000件のデータまでしか取得できません。しかし、それ以上データがあることは多いでしょう。そんな時に、毎回データの件数を調べて繰り返し取得する処理を書くのは面倒です。

そこで使ってみて欲しいのが ncmb-utils です。Node.js向けに書いていますので、JavaScript SDKと組み合わせて利用できます。

使い方

ライブラリのインストールは npm i ncmb-utils -S で行ってください。

ライブラリを読み込みます。全件取得は fetchEvery という関数です。

const { fetchEvery } = require('ncmb-utils');
const ManyData = ncmb.DataStore('ManyData');

そして全件取得したいクラスを fetchEvery 関数に渡します。これだけで完了です。

(async () => {
  const res = await fetchEvery(ManyData);
  console.log(res.map(i => i.name));
})();

もちろん Promiseでも使えます。

const res = fetchEvery(ManyData)
  .then(res => res.map(i => i.name))

検索条件指定

検索条件を指定した使い方もできます。

(async () => {
  const res = await fetchEvery(ManyData.equalTo('name', 'Name #26'));
  console.log(res.map(i => i.name));
})();

処理内容

行っているのはcountを使って件数を取得し、1,000件ずつデータを取得しています。難しいことはしていませんが、よくある処理だけに関数にまとめてしまった方が便利です。

まとめ

通常の使い方と殆ど変わらないので、1,000件を超えたらfetchEveryでラッピングしてみてください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。