0

我的项目有Article类。然后,有一种Block种。每个Block都有一个作为父实体的文章;因此,每篇文章都由几个Block实体组成。每个Block有一个订单财产所以最终用户可以订购它们。有没有办法仅通过Google Cloud Datastore更新单个属性值?

在前端,用户可以添加新的Block或更新现有的。显然,通过向上移动Block,它改变了它自己的顺序,但是致命的是,它也改变了(+1)后续的每个实体Block

到目前为止,对于用户保存的每一次更新,我检索所有Block实体的顺序等于或大于新保存的实体,并更新它们中的每一个。

是否有办法使用PHP库简单地更新一个属性(order)?

回答

0

不,你不能只更新一个实体的属性,你必须更新整个实体。从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. 
相关问题