データストアでは一度に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でラッピングしてみてください。