モデルクラスです。

ClassMethods

insertAll(objects) -> Promise

指定したデータの配列で、データを作成します。

引数:

Name Type Description
objects Model[] or Object[] Modelのインスタンスか、カラム名をkeyとしたオブジェクトの配列を指定します。

Return:

Type: Promise< Model[] >

Example

let insertDataList = [
  {columnA: "1234"},
  {columnA: "abcd"}
];

ModelA.insertAll(insertDataList)
  .then((results)=>{
    console.log(results);
  });

insert(object) -> Promise

指定したデータで、サーバーにデータを作成します。

引数:

Name Type Description
objects Model or Object Modelのインスタンスか、カラム名をkeyとしたオブジェクトを指定します。

Return:

Type: Promise< Model >

Example

ModelA.insert({columnA:"1234"})
  .then((result)=>{
    console.log(result);
  });

findById(id) -> Promise

指定したIDでデータを検索します。

引数:

Name Type Description
id String データのID

Return:

Type: Promise< Model >

Example

ModelA.findById("id-001")
  .then((result)=>{
    console.log(result);
  });

findAll() -> Promise

全てのデータを検索します。

Return:

Type: Promise< Model[] >

Example

ModelA.findByAll()
  .then((results)=>{
    console.log(results);
  });

select(alias) -> Query

検索クエリの作成を開始します。

引数:

Name Type Description
alias (optional) String クエリ文の中で使用する、テーブル名の別名を指定する。

Return:

Type: Query

Example

ModelA.select()
  .findList()
  .then((result) => {
    console.log(result);
  });

removeById(id): Promise

指定したIDのデータを削除します。

引数:

Name Type Description
id String データのID

Return:

Type: Promise

Example

ModelA.removeById("id-001")
  .then((result)=>{
    console.log(result);
  });

downlink(alias) -> QueryLimited

ローカルデータベースへ保存するデータの取得のためのクエリ作成を開始します。

引数:

Name Type Description
alias (optional) String クエリ文の中で使用する、テーブル名の別名を指定します。

Return:

Type: QueryLimited

Example

ModelA.downlink()
  .where('columnA=?',["1234"])
  .execute()
  .then((result)=>{
    console.log(result);
  });

uplink(conflict) -> Promise

ローカルデータベースに保存されているデータをサーバーに送信します。

引数:

Name Type Description
conflict Function< Object > データのコンフリクトが発生した場合に呼び出す関数。

conflict関数には以下の様なオブジェクトか渡されます。

const conflictedObjects = {
  update: [], // array of Model
  delete: [] // array of Model
};

Return:

Type: Promise

Exapmle

ModelA.uplink((conflict)=>{
    console.log(conflict);
  })
  .then((result)=>{
    console.log(result);
  });

countUnsent() -> Promise

ローカルデータベースに保存されているサーバーに送信されていないデータの件数を取得します。

Return:

Type: Promise< Number >

Exapmle

ModelA.countUnsent()
  .then((result)=>{
    console.log(result);
  });

getUnsents() -> Promise

ローカルデータベースに保存されているサーバーに送信されていないデータを取得します。

Return:

Type: Promise< Object >
以下の様なオブジェクトが取得できます。

{
  created: [], // array of objectId
  updated: [], // array of objectId
  deleted: [] // array of {objectId, serverUpdateTime}
};

Exapmle

ModelA.getUnsents()
  .then((result)=>{
    console.log(result);
  });

get(key) -> any | object

インスタンスが保持するカラムのデータを取得します。

引数:

Name Type Description
key (optional) String 取得するカラムの名前

keyを指定しない場合は、カラム名をkeyとした全てのカラムをオブジェクトとして返します。

Return:

Type: any or Object

Exapmle

var columns = ModelA.get();

set(key, value) -> Model

インスタンスにカラムのデータをセットします。

引数:

Name Type Description
key String 設定するカラムの名前
value any 設定するデータ

Return:

Type: Model

Example:

var modelA = new ModelA();
modelA.set('columnA', 1234);
/* ModelAにcolumnAがdefineされている場合
   以下の様に書くことも可能です */
modelA.columnA = 1234;

set(columns): Model

インスタンスにカラムのデータをセットします。

引数:

Name Type Description
columns Object 設定するデータのカラム名をkeyとしたオブジェクト

Return:

Type: Model

Example:

var modelA = new ModelA();
modelA.set({
  columnA: 1234,
  columnB: 'abcde'
});

InstanceMethods

insert(columns) -> Promise

インスタンスのプロパティで、サーバーにデータを作成します。

引数:

Name Type Description
columns (optional) Object 設定するデータのカラム名をkeyとしたオブジェクト

columnsが指定された場合は、プロパティを更に上書きして、サーバーに作成クエリを発行します。

Return:

Type: Model

Example

var modelA = new ModelA();
modelA.insert({columnA:"abcd"});

update(columns: object) -> Promise

インスタンスのプロパティで、サーバーのデータを更新します。

引数:

Name Type Description
columns (optional) Object 設定するデータのカラム名をkeyとしたオブジェクト

columnsが指定された場合は、プロパティを更に上書きして、サーバーに更新クエリを発行します。

Return:

Type: Model

Example

var modelA = new ModelA();
modelA.update({columnA:"abcd"});

save(columns: object) -> Promise

インスタンスのプロパティで、サーバーのデータを作成、もしくは更新します。
isNew()がtrueを返す場合は、insert動作、falseの場合はupdate動作を行います。

引数:

Name Type Description
columns (optional) Object 設定するデータのカラム名をkeyとしたオブジェクト

columnsが指定された場合は、プロパティを更に上書きして、サーバーにクエリを発行します。

Return:

Type: Model

Example

var modelA = new ModelA();
modelA.save({columnA:"abcd"});

remove() -> Promise

インスタンスのIDのデータをサーバーから削除します。

Return:

Type: Model

Example

var modelA = new ModelA();
modelA.remove();

isNew() -> Boolean

サーバーやDBに一度も保存されていないレコードである場合にtrueを返します。それ以外の場合にはfalseを返します。
save()実行時に、isNew()がtrueを返すインスタンスの場合はinsert動作、falseの場合はupdate動作を行います。

Return:

Type: Boolean

Example

var modelA = new ModelA();
if (modelA.isNew()) {
  console.log("insert");
} else {
  console.log("update");
}