メインコンテンツまでスキップ

アイテムの操作

アイテムはデータストアの各行に相当するデータです。データストアを通して取得したデータを保存したり、新しいデータを作成したりすることができます。

アイテムの取得

データストアの中にある全アイテムを取得します。

const items = await datastore.items();

特定のアイテムを取得

特定のアイテムを取得する場合には、アイテムIDを指定します。

const item = await datastore.item('ITEM_ID');

新規のアイテムを作成

新規アイテムを作成する場合には、引数なしで item を実行します。

const newItem = await datastore.item();

フィールドに値を設定

続けて、この newItem に対してフィールドを設定します。以下のコードでは、あらかじめ message フィールドを用意してある前提です。

newItem.set('message', 'Hello, Hexabase!');

返り値は自分自身なので、 set メソッドはメソッドチェーンで繋げることができます。

newItem
.set('message', 'Hello, Hexabase!')
.set('name', 'Hexabase');

別なアイテムを関連付ける

別のアイテムを自動リンクとして関連付ける場合には、link メソッドを実行します。

newItem.link(anotherItem);

link メソッドも自分自身を返しますので、メソッドチェーンで繋げることができます。

newItem
.link(anotherItem)
.link(yetAnotherItem);

アイテムの関連付けを解除する

アイテムの関連付けを解除する場合には、unlink メソッドを実行します。

newItem.unlink(anotherItem);

unlink メソッドも自分自身を返しますので、メソッドチェーンで繋げることができます。

newItem
.unlink(anotherItem)
.unlink(yetAnotherItem);

ファイルをアップロードする

ファイルを紐付ける場合には、まず file メソッドで FileObject を取得します。

const file = item.file();

そして、このファイルに Blobファイル名 を設定します。

const blob = new Blob(['Hello world'], { type: 'text/plain' });
file
.set('name', 'test_file.txt')
.set('data', blob);

後はファイル型に設定されているフィールドにセットして保存します。

await item
.set('test_file', [file])
.save();

アイテムの保存

アイテムの保存は、save メソッドを実行します。

await newItem.save();

アイテムの更新

アイテムの更新も、save メソッドを実行します。

newItem.set('message', 'Hello, Hexabase again!');
await newItem.save();

現在のステータスを取得

現在のステータスは status メソッドで取得できます。

const status = await newItem.status();

ステータスを更新

ステータスを更新する際には execute メソッドを実行します。この処理ではデータは更新されません(ステータスの変更のみ行われます)。

await newItem.execute('nextStatus');

現在のアイテムが実行できるステータスアクションは statusActions メソッドで取得できます。

const statusActions = await newItem.statusActions();

アイテムの削除

アイテムを削除する場合には、delete メソッドを実行します。

await newItem.delete();

リアルタイム通知を受け取る

アイテムの変更をリアルタイムで受け取る場合には、subscribe メソッドを実行します。1つ目の引数はイベントを指定します。現在は update のみ指定できます。

item.subscribe('update', (item) => {
console.log(item);
});

コメントを作成、保存

リアルタイム通知はコメントを作成した際に受け取ることができます。以下のコードで、アイテムの subscribe メソッドが呼ばれます。

const comment = await item.comment();
commnet.set('comment', 'Hello, Hexabase!');
await comment.save();