更新数据存储区实体 - 在不更改实体键的情况下更改祖先

时间:2012-09-02 19:22:08

标签: google-cloud-datastore go

是否可以在不更改实体密钥的情况下更新实体的祖先?我将如何在Go中实现这一目标?

我的层次结构类似于:

公司/部门/雇员

开始时没有员工部门:公司/员工。 然后,当他/她被分配到一个部门时,我想将其更改为:公司/部门/员工,但我希望实体密钥保持不变,因为它已在别处用于引用该实体。

1 个答案:

答案 0 :(得分:3)

  

是否可以在不更改实体密钥的情况下更新实体的祖先?

我不相信。祖先是关键的一部分。

  

我将如何在Go中实现这一目标?

您需要在此处使用实体组吗?我尽可能避免实体组。他们增加了太多限制。我建议你为公司和部门的员工实体添加属性:

type Employee struct {
  Company, Department string
}

您仍然可以通过这些属性进行查询,但更新后可能会有几秒延迟。如果您需要强大的一致性,您始终可以通过密钥查看Employee up。这将始终返回最新版本。