NIFCLOUD-mbaas / ncmb_js

ニフクラ mobile backend JavaScript SDK
https://mbaas.nifcloud.com
Other
28 stars 27 forks source link

データ保存時にsetIncrementを指定するとオブジェクト型で保存される #163

Closed goofmint closed 6 years ago

goofmint commented 8 years ago

不具合の概要(Description of bug)

var Increment = ncmb.DataStore("Increment");
var item = new Increment;
item.setIncrement("increment", 1); // 1ずつ増加
item.save()
  .then(function(i) {
    console.log(i)
  })

のようなコードを実行すると、

{"__op":"Increment","amount":1}

といったデータで保存されます。このカラムにさらに保存しようとするとDBエラーになります。

ncmbsdk commented 8 years ago

saveメソッドの代わりに、保存済みのオブジェクトに対してupdateメソッドを利用することで incrementを行うことが可能です。

サンプルコード(updateメソッドを利用できるのは保存済みオブジェクトに対してなので、saveメソッドを最初に呼び出しています)

var Increment = ncmb.DataStore("Increment");
var item = new Increment;
item.set("message", "test")
    .save()
    .then(function(i) {
        item.setIncrement("increment", 1); // 1ずつ増加
        item.update()
            .then(function(i) {
                  console.log(i)
            }).catch(console.error);
    }).catch(console.error);

saveメソッドでも利用できるような改修も検討してまいります。