2017-02-08 9 views
0

以前にクラウドデータベース内のドキュメントに残っていたプロパティを削除する際に問題が発生しました。そのプロパティを使わずに、新しいバージョンを保存する必要があるようです。私は次のコードを持っている、それは、オブジェクトを保存し、私は新しい_revを取得します。しかし、statisticsプロパティは依然として永続化されたドキュメントにあります。クラウド内の永続化されたjsonオブジェクトからプロパティを削除します。

永続プロパティを削除するにはどうすればよいですか?

// mixStatistics don't get persisted on the mix, so remove property as it goes through 
// the save 
let saveMixStatistic = mix.statistics; 
delete mix.statistics ; 
// ------------------------- 

this.userDb.put(mix).then(function (response) { 
    // handle response 
    console.log("mix saved"); 
    mix._rev = response.rev; 

}).catch(function (err) { 
    console.log(err); 
}); 

// put mixStatistics back after the save 
mix.statistics = saveMixStatistic; 
+0

このセクションの「統計情報」は、Cloudantを生成するあなたの財産ですか? –

+0

.statisticsは私の財産です。文書と一緒に保存しないでください。開発の早い段階で、それは救われました。さて、私は.statisticsプロパティなしでそれを保存すると思うだろうが、それは動作しません。 – jeff

+0

'userDb.put'メソッド呼び出しに関連するHTTPリクエストとレスポンス情報を調べましたか?その方法についての詳細も教えてください。 – ptitzler

答えて

1

mix.statisticsが遅すぎる可能性があります。この場合、PUTがHTTP要求を行う前に再追加される可能性が最も高いです。 PUTが完了した後でリセットするようにしてください。

let saveMixStatistic = mix.statistics; 
delete mix.statistics ; 

this.userDb.put(mix).then(function (response) { 
    // handle response 
    console.log("mix saved"); 
    mix._rev = response.rev; 

    // put mixStatistics back after successful save 
    mix.statistics = saveMixStatistic; 

}).catch(function (err) { 
    console.log(err); 

    // put mixStatistics back after failed save 
    mix.statistics = saveMixStatistic; 
}); 
+0

ゴッチャ、私はそれが好きです。 – jeff

関連する問題