在googleappengine上批量获取子实体?

2024-10-01 02:25:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中的googleappengine上,我有一个Visit实体,它的父级是Patient。一个病人可能有多次就诊。在

我需要在某处设置最近的访问(以及一些辅助访问数据),以便以后查询,可能在Brett Slatkin可能称为“关系索引实体”的另一个子实体中

我希望以散装方式这样做,如下所示:

1. get 100 Patient keys
2. get all Visits that have any of the Patients from 1 as an ancestor
3. go through the Visits and get the latest for each Patient

有没有办法在批量获取中执行步骤2?在

我知道有一种方法可以从键列表中批量获取实体,也有一种方法可以通过其祖先匹配单个实体。在


Tags: the数据方法实体get关系visit批量
3条回答

如果在模型Visit中设置属性Patient,如下所示:

class Patient(db.Model):
    pass

class Visit(db.Model):
    patient_visited = db.ReferenceProperty(Patient)

在每个病人实体上都会有这个自动查询属性visit_set,所以您可以这样查询:

^{pr2}$

一切都结束了。 在101个查询中。不错。在

在数据存储中,无法访问您要查找的查询类型;它是一个连接,不支持这种连接。第2步需要100个查询。在

您可以在每个患者实体中存储一个就诊密钥列表,然后可以根据这些实体的密钥进行简单的批量获取所有这些实体。在

为什么不在患者对象上维护患者就诊键的列表?您已经知道最后一次访问,因为它将是添加到列表中的最后一个键。在

我的NF探测器快疯了,这让我觉得这是数据存储的正确解决方案。在

相关问题 更多 >