有没有一种简单的方法来更改谷歌应用引擎数据库中记录的父级

mol*_*ule 8 google-app-engine google-cloud-datastore

特定

class Category(db.Model):
   name = db.Stringproperty()

说我有一个嵌套的层次结构

-root
 |-a
 | |-b
 |   |-c
 |-x
   |-y
     |-z1
     |-z2

a父母在哪里root,b父母是a,c父母是b等等.

有没有通过,我可以移动节点的简单方式yxb这样z1z2继续保持的孩子y:

-root
 |-a
 | |-b
 |   |-c
 |   |-y
 |     |-z1
 |     |-z2
 |-x

这意味着我只是改变了y父母.

但是,如果不可能,那就不需要了

  1. 创建一个新的记录ny = Category(parent=b, name=y)
  2. 以递归方式为每个孩子y创建一个具有ny父母和.的新记录
  3. 删除y及其子女.

Nic*_*son 9

父关系在实体的密钥中编码,密钥在创建后是不可变的,因此不能更改现有实体的密钥.为此,您需要使用新密钥重新插入所有相关项目.