JavaScript SDKはMonacaアプリやコンソールからNCMBを使うのに便利なライブラリですが、機能はごく基本的なものに限っており物足りなさを感じることがあります。
そこで非公式に作っているのがNCMB Extendです。データストアを拡張して便利なメソッドを追加しています。
updateAllメソッドの追加
今回は取得系ではなく更新系メソッドです。指定した条件にあうデータをまとめて更新します。mBaaSでは一括更新系メソッドは提供していませんので、実際には一件ずつ取得しつつ、同じ条件を適用していく流れになります。
使い方は以下のようになります。事前に指定した条件に従ってfetchAllし、取得したデータに対して同じ更新条件を適用します。便利な点としては関数を与えられることで、実際のデータに合わせて更新内容を変更できます。
例えば以下の例では1ずつ足して更新する例です。これはインクリメント的なものです。更新が重なると同じ数字に書き換わるのであくまでも「的」になります。ちゃんとしたインクリメントが必要な場合はsetIncrementを使ってください。
AA7 .equalTo('Boolean', true) .updateAll({ Integer: 5, Integer2: me => me.Integer2 += 1, }) .then((ary) => { console.log(ary); });
結果として、更新されたデータが配列になって返ってきます。
インストール
NCMB Extendのインストールは npm コマンドでできます。
npm i ncmb-extend -S
後はJavaScript SDKを読み込んだ後でライブラリを読み込んでください。
const NCMB = require('ncmb'); require('ncmb-extend');
updateAllメソッドは汎用的なので、多くの場面で使えるのではないかと思います。ぜひお試しください。また、何か動作の不明点や問題、機能要望があれば下記リポジトリにお願いします。