如何更新数据存储区中命名空间中的实体

时间:2019-04-28 18:26:14

标签: python-3.x replace google-cloud-datastore gql

我有一个名为“ items”的名称空间,其中包含许多属性。一种属性称为“ incidentLocation”,另一种属性称为“ incidentState”。

对于“ incidentLocation”为null的任何地方,我都希望将“ incidentState”的值复制到该位置。然后,我要删除“ incidentState”属性。

我正在使用python客户端进行数据存储。如何检索和更新给定名称空间中的每个实体?

编辑: 我想出了如何检索实体

from google.cloud import datastore
client = datastore.Client(project="myproject")
query = client.query(kind='spots', namespace='items')

print(list(query.fetch(10)))

仍然不确定如何将每个实体更新回数据库中

1 个答案:

答案 0 :(得分:0)

GQL不支持更新。 Cloud Datastore不是关系数据库,而是文档数据库,因此,您无需考虑列,而应考虑整个文档。在这种情况下,您似乎应该考虑对items类型运行Cloud Dataflow作业,以添加新的incidentLocation属性。

要将实体写回到数据库,应使用put。您应该考虑使用batches来减少发送的RPC数量,这将为您提供更好的吞吐量。