祖先是否自动"放入"数据存储区?

Jul*_*éon 2 google-app-engine google-cloud-datastore

我刚刚开始使用Google App Engine,我对本教程的第一个数据存储示例感到有些困惑.

在此示例中,每次将问候语放入数据存储区时,其父级都将设置为根据留言簿名称构建的密钥:

 greeting = Greeting(parent=guestbook_key(guestbook_name))
Run Code Online (Sandbox Code Playgroud)

def guestbook_key(guestbook_name=None):
    """Constructs a datastore key for a Guestbook entity with guestbook_name."""
    return db.Key.from_path('Guestbook', guestbook_name or 'default_guestbook')
Run Code Online (Sandbox Code Playgroud)

让我感到困惑的是,它guestbook_name本身从未明确放入数据存储区.那些不在数据存储区中的孩子的问候也是如此?或者以guestbook_name某种方式自动存储?

小智 5

这个例子还说:

在将"Guestbook"实体设置为另一个实体的父实体之前,无需创建它.在此示例中,父级用作占位符以实现事务和一致性.

另外,来自:http://khaidoan.wikidot.com/google-app-engine-datastore-entity-group

您可以创建具有祖先路径的实体,而无需先创建父实体.为此,您使用种类和密钥名称为祖先创建密钥,然后将其用作新实体的父级.具有相同根祖先的所有实体属于同一实体组,无论路径的根是否代表实际实体.