既存のエンティティにプロパティを追加する場合は、単に「複製」して追加します。Google Cloud Dataflowを使用してDatastoreのプロパティを削除または更新する
Entity oldEntity = c.element();
Entity.Builder entityBuilder = Entity.newBuilder(oldEntity);
entityBuilder.addProperty(
DatastoreHelper.makeProperty("newProperty",
DatastoreHelper.makeValue("Value")
)
);
c.output(entityBuilder.build());
プロパティを更新する場合は、もう一度追加すると古い値を上書きしても機能しません。プロパティの名前は一意でなければならないため、データストアには保存されません。同じ名前の2つの名前を持つことになります。
Error writing to the Datastore (400): Entity has duplicate property name
あなたがプロパティを削除したい場合は、プロパティリストからインデックスを知る必要があり、そのためにあなたは、すべてのプロパティを一覧表示する更新するプロパティが存在するかどうかをチェック、維持する必要があるだろうインデックス番号のトラックを削除してから削除します。
この手順の組み込みヘルパーがありますか、ショートカットがありませんか?
は、この仕事をしていますか? –
はい!あなたはそれを更新しようとしているのですか?この質問/回答コンボをチェックして、役立つかどうかを確認してください。http://stackoverflow.com/q/34774351/190908 –
ユースケースはあなたのものと同じです。私はエンティティにプロパティを追加したり更新したりする必要があります。提案したアプローチの問題は、古いエンティティと新しいエンティティの順序やプロパティが変化していることです。これは必要なものではありません。 –