ndb.Query:只返回其他项目的孙项

时间:2015-02-18 10:36:41

标签: python google-app-engine google-cloud-datastore app-engine-ndb

我在house的{​​{1}}中有一个district的结构,我需要使用{在city和/或city搜索房屋{1}}(因为我还需要过滤其他属性)。

districtndb.Query个列表,City列有district个。

注意:这里没有祖先,因为这是更大图的一部分,因此无法进行祖先查询。

例:
获取指定districthouse house的所有area > 500city中的字段name)。

1 个答案:

答案 0 :(得分:1)

由于你不能做JOIN,你必须稍微改变你的设计。

最简单的选择是将city_name添加为House的属性,这似乎可以回答您的示例和一般性问题。

如果您无法更改模型,或者查询更复杂,您可以让另一个实体保存查询所需的所有信息(您的非规范化表),并仅将其用于此。 House可以是它的祖先,因此您可以执行仅限密钥查询,这将节省您的时间/金钱。另请尝试define indexes查找最常见的查询。