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

问题描述 投票:0回答:1

我有一个名为“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)))

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

replace google-cloud-datastore gql
1个回答
0
投票

GQL不支持更新。 Cloud Datastore不是关系数据库,它是一个文档数据库,因此您应该考虑整个文档,而不是考虑列。在这种情况下,看起来你应该考虑在你的Cloud Dataflow种类上运行items工作来添加新的incidentLocation属性。

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

© www.soinside.com 2019 - 2024. All rights reserved.