機能的にはまだまだ少ないですが、Deno/TypeScript用のSDKを開発中です。TypeScriptで作られており、VueやReact、Angularとの組み合わせでも利用できます。
NCMBMania/ncmb_deno: deno用のSDKです
今回はリレーションの使い方です。リレーションはデータストアのオブジェクト同士を結びつけるのに使います。ポインターが1対1なのに対して、リレーションは1対Nの関係を表現できます。
インストール方法
インストールは普段使っているnpmやYarnで可能です。
npm install ncmb_ts -S
初期化
初期化は次のように行います。
// Node.jsの場合 import NCMB, { NCMBUser, NCMBQuery } from 'ncmb_ts' // denoの場合 import NCMB, { NCMBUser, NCMBQuery } from 'https://raw.githubusercontent.com/NCMBMania/ncmb_deno/master/deno/ncmb.ts' const ncmb = new NCMB('YOUR_APPLICATION_KEY', 'YOUR_CLIENT_KEY')
リレーションを作成する
リレーションはリレーションを保存するオブジェクト(以下のコードではMainクラス)と、管理されるオブジェクト(以下のコードではTestクラス)に分かれます。addでリレーション対象のオブジェクトを追加し、Mainクラスに任意のフィールド名(今回はrelationフィールド)に保存します。
const item1 = new NCMBObject('Test'); await item1.set('message', 'Hello, world from item1').save(); const item2 = new NCMBObject('Test'); await item2.set('message', 'Hello, world from item2').save(); const relation = new NCMBRelation(); relation .add(item1) .add(item2); const mainObj = new NCMBObject('Main'); await mainObj .set('relation', relation) .save();
リレーションからデータを取得する
次に Mainクラスから、紐付いているTestクラスのオブジェクトを取り出す方法です。これはTestクラスのクエリを利用します。そしてrelatedToメソッドに対して、Mainクラスのオブジェクトを指定します。
const query = new NCMBQuery('Test'); const ary = await query .relatedTo(mainObj, 'relation') .fetchAll();
リレーションからデータを削除する
既存のリレーションからデータを削除する場合は removeを使います。
const relation2 = new NCMBRelation('Test'); relation2.remove(item1); await mainObj.set('relation', relation2).save();
注意点
リレーションへのデータの追加と削除を一つの保存処理では実行できません。一回の処理では追加、または削除だけになります。
まとめ
リレーションを使うことで、データをRDBMSのように関連付けて管理できるようになります。ぜひ使いこなしてください。