有没有办法仅通过Google Cloud Datastore更新单个属性值?
我的项目有Article
类。然后,有一种Block
种。每个Block
都有一个作为父实体的文章;因此,每篇文章都由几个Block
实体组成。每个Block
有一个订单财产所以最终用户可以订购它们。有没有办法仅通过Google Cloud Datastore更新单个属性值?
在前端,用户可以添加新的Block
或更新现有的。显然,通过向上移动Block
,它改变了它自己的顺序,但是致命的是,它也改变了(+1)后续的每个实体Block
。
到目前为止,对于用户保存的每一次更新,我检索所有Block
实体的顺序等于或大于新保存的实体,并更新它们中的每一个。
是否有办法使用PHP库简单地更新一个属性(order
)?
回答:
不,你不能只更新一个实体的属性,你必须更新整个实体。从Updating an entity:
要更新现有的实体,修改先前检索到的实体 的属性,并存储它用所述密钥:
$transaction = $datastore->transaction();
$key = $datastore->key('Task', 'sampleTask');
$task = $transaction->lookup($key);
$task['priority'] = 5;
$transaction->upsert($task);
$transaction->commit();
所提供的数据覆盖现有的实体。必须将整个对象 发送到云数据存储。 [...]
**Note:** To delete a property, remove the property from the entity, then save the entity.
以上是 有没有办法仅通过Google Cloud Datastore更新单个属性值? 的全部内容, 来源链接: utcz.com/qa/257122.html